UPDATE: La premessa di questa domanda si è rivelata errata. Il problema non si verifica a meno che lo spostamento non sia in risposta a un clic dell'utente. Si prega di vedere here.IE9 + jwplayer: __flash__add Errore callback se sposta player in dom prima di chiamare player.load()
ho bussato la testa contro un bug per alcuni giorni e spero che qualcuno possa aiutare.
Ho uno script jquery che effettua chiamate a un oggetto jwplayer ("myplayer") utilizzando jwplayer javascript api. Ad esempio, per caricare myplayer con un particolare video, che io chiamo:
myplayer.load('my_url');
Questo funziona bene sia in Firefox e Internet Explorer, finché non mi muovo prima il giocatore in una posizione diversa nel DOM.
Tuttavia, il mio script a volte sposta il lettore dalla posizione A alla posizione B e quindi torna alla posizione A, prima di chiamare myplayer.load()
. Questo funziona bene in Firefox. Ma in Internet Explorer 9, ottengo un errore su questa linea:
return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
che si trova all'interno di questa funzione:
function __flash__addCallback(instance, name) {
instance[name] = function() {
return eval(instance.CallFunction("<invoke name=\""+name+"\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments,0) + "</invoke>"));
}
}
Se traccio ciò che sta accadendo nel debugger Internet Explorer, vedo che myplayer.load('my_url')
chiama this.callInternal("jwLoad",u)
in jwplayer.js
ed è apparentemente durante l'esecuzione di this.callInternal("jwLoad",u)
che si verifica l'errore.
Dettagli:
il codice HTML simile a questa:
<div id='stage'>
<div id='myplayer_wrapper'>
<object id='myplayer'>...</object>
</div>
</div>
<div id='holding-pen'></div>
Quando non è in uso il giocatore, mi muovo suo involucro-div al possesso-penna:
var el = $('#myplayer_wrapper');
$('#holding-pen').append(el);
Dopo aver spostato il wrapper-div del lettore nella penna di tenuta, l'html ora appare:
<div id='stage'></div>
<div id='holding-pen'>
<div id='myplayer_wrapper'>
<object id='myplayer'>...</object>
</div>
</div>
quando voglio utilizzare il lettore, mi muovo suo involucro-div torna alla fase-div:
var el = $('#myplayer_wrapper');
$('#stage).append(el);
Dopo aver spostato involucro-div del giocatore alla fase-div, gli sguardi html lo stesso come ha fatto in origine:
<div id='stage'>
<div id='myplayer_wrapper'>
<object id='myplayer'>...</object>
</div>
</div>
<div id='holding-pen'></div>
al caricamento della pagina, creo il giocatore-oggetto e spostarlo alla holding-penna. Poi lo trasferisco sul palco e carica un video.
Se l'utente fa clic, ad esempio su una miniatura di immagine, sposto il riproduttore video sulla penna di tenuta e sposta l'immagine selezionata sullo stage.
Se l'utente fa clic su una miniatura del video, recupero il lettore video dallo stilo e lo sposto sul palco. Quindi caricare il lettore con il video selezionato.È qui che si verifica il problema "_ flash _addCallback" in Internet Explorer.
Qualcuno ha qualche idea di cosa sta succedendo? O qualche suggerimento su come posso farlo funzionare su internet explorer?
Grazie mille!
potrebbero essere correlati: https://github.com/johndyer/mediaelement/issues/530 – greg0ire
Can crei un violino dimostrando il problema? Anche il collegamento Aggiornato nella parte superiore della domanda non è disponibile. – Trevor
http://stackoverflow.com/questions/12823994/ie9-move-and-load-flash-player-in-response-to-user-click-load-fails ..... questo collegamento non funzionava, I l'ho cambiato con questo .... http://www.longtailvideo.com/support/forums/jw-player/bug-reports/28999/ie9-move-and-load-player-in-response-to-user -click-load-fail/ – Hitesh