1

Ich habe einen Menübildschirm, der aus verschiedenen Gründen besteht aus einer Reihe von Tasten als separate Flash-Filme. Wenn auf eine Schaltfläche in diesen Filmen geklickt wird, sollte sie eine JavaScript-Funktion aufrufen, um zur entsprechenden Seite zu wechseln. Es funktioniert gut in Firefox, aber ist derzeit in IE7 versagt. Ich habe kein IE6, um es zu testen. Diese ist der Fehler, den ich in IE erhalten:ExternalInterface.call verursacht Fehler in IE

Line:1 
Char:25 
Error: Expected ';' 
Code:0 

ich nicht, was char 25 der Linie finden kann 1 könnte tatsächlich bedeuten. Ich erhalte nur den Fehler, wenn ich auf die Schaltfläche klicke, und nachdem ich Visual Web Developer installiert habe, um zu versuchen, ein echtes Debugging zu erhalten, scheint es nicht wirklich die aufgerufene Funktion auszulösen, so scheint es, als ob der Fehler passiert welcher Mechanismus macht eigentlich ExternalInterface.call funktioniert?

Der Code auf dem Flash-Film ist buchstäblich nur:

ExternalInterface.call('gohere',skip_id); 

Wo SKIP_ID in den Film als Flash-Variablen übergeben wird - es scheint einen sensical Wert zu erhalten, wie ich es zu einem Textfeld im Innern des Flash drucken Film. Die JavaScript-Funktion ist ebenso kompliziert:

function gohere(i){ 
    lo.skipto(i); 
} 

Aber wie ich sagte, es zeigt nicht einmal, wenn ich einen Haltepunkt setzen hier und debuggen. Wenn ich einen javascript: gohere ('id') Link in den HTML-Bildschirm einfüge und darauf klicke, dass es gut funktioniert. Ich habe ExternalInterface.call in anderen Teilen des gleichen Projekts arbeiten, und kann nicht für das Leben von mir sehen, Unterschiede in der Art, wie es implementiert wurde.

Ideen?

Antwort

1

Es stellte sich heraus, ich hatte eine - in der ID des Objekt-Tags, die IE überhaupt nicht nett zu nehmen.

Seufzer

+1

Markieren Sie Ihre eigene Antwort als akzeptiert! – Evert

0

Ich bin schrecklich im Debuggen dieser Art von Dingen noch mehr in IE, so für Anfänger würde ich eine "alert()" in meinem Gohere. Dann würde ich anfangen, Wagenrücklauf in meinem Javascript zu setzen und zu sehen, ob sich die Zeile mit dem Fehler bewegt, und es durch Abzug herausfinden.

Nebenbei gibt es eine Software namens IETester, die Ihnen zeigen sollte, wie Ihre Seite in IE 5.5/6/7/8RC1 aussehen würde.

+0

Ja, die alert() wird nie gefeuert. Das Finden der Zeile ist etwas kompliziert, weil die js ajaxed und in einen HTML-Halter eingefügt wird. IE scheint Probleme beim Finden von Code zu den besten Zeiten zu haben. – Andrew