2017-02-16 4 views
1

Ich habe eine IntroJS-Demo, die in JSFiddle funktioniert.IntroJS, Uncaught Reference Error

Als ich es mit meiner app fusionieren, „Klick mich IntroJS zu testen“ die Taste kehrt: Uncaught ReferenceError: intro is not defined at HTMLButtonElement.onclick

  • überprüfte ich die richtige IntroJS CSS und JS-Bibliotheken werden die codepen CDN geladen durch.
  • Ich überprüfte die Schreibweise der Funktion. Eine Testwarnungstaste löst richtig aus.
  • Ich versuchte <body> und andere JSfiddle Wrapper im Codepen HTML Hauptabschnitt. Ich habe bereits Codepen-Snippets nach JSfiddle verschoben und kenne die üblichen Fehler.

Ich denke, es ist ein Problem Bereich, aber ich bin mir nicht sicher, was ich als nächstes tun soll.

Die JS ist hier, an der Linie 381

intro = introJs(); 
    intro.setOptions({ 
    'showStepNumbers': false 
    }); 
    intro.start(); 

function testAlert() { 
    alert("alert"); 
}; 

Die Taste ist hier:

<button onclick="intro.start();">Click me to Test IntroJS</button> 

Die full app is here, Knöpfe sind auf halbem Weg nach unten:

+1

der Codepen funktioniert hier: http://codepen.io/mayank_shubham/pen/pRBPjr –

+0

Ich kann es funktioniert OK als Standalone Codepen auch, Shubham, aber wenn ich den Code mit meiner größeren App, die Tasten zusammenführen nicht mehr arbeiten. https://codepen.io/Teeke/pen/mRgWLg – RubyRube

+0

Wenn Sie 'intro.start()' von der Inline-Ereignisbehandlungsroutine aufrufen, müssen Sie sicherstellen, dass das 'Intro'-Objekt im globalen Bereich definiert oder verfügbar gemacht wird (nicht z. B. in einen DOMContentLoaded-Callback eingeschlossen). Kannst du zeigen, wo dein "Intro" -Objekt (und "Start" -Funktion plus zugehöriger Code) in deiner echten App definiert ist? – mrlew

Antwort

2

Das Problem im codepen Beispiel (https://codepen.io/Teeke/pen/mRgWLg) ist, dass es einen JavaScript-Fehler bei Zeile 355 gibt:

setText(playButton, "Play");

Die Variable playButton wurde nicht definiert. Dies verhindert, dass der Rest des JavaScript funktioniert. Nachdem ich alle Verweise auf playButton auskommentiert hatte, wurde der Code intro.js wie erwartet ausgeführt.

+0

Sie haben wirklich scharfe Augen, :) –

+0

Danke Clarmond, das funktioniert. Ich habe gesehen, dass playButton Fehler in der Konsole auftauchen, aber ich dachte, ich könnte es einfach lassen. Ich muss daran denken, dass Fehler in einem Bereich eines Javascript-Programms seltsame Fehler in einem anderen Teil des Skripts verursachen können. Lektion gelernt. Prost. – RubyRube

Verwandte Themen