Javascript: generierte Funktionen im globalen Namespace?
Hallo Leute,
ich bin kein Proficoder und mir wurde vor einiger Zeit bei einer (für mich) ziemlich kniffligen Frage weitergeholfen. Ich habe mehrere dynamisch generierte (über PHP) YoutubePlayer auf meiner Seite. Alle will ich mit der YoutubePlayer Javascript API steuern. Das funktioniert mittlerweile super, da mir eben geholfen wurde. Die Erklärung lautete, dass für jeden Player eine eigene onStateChange Funktion generiert wird (im globalen Namespace, oder so :). PHP-Code:
Jetzt würde ich nur noch gerne eine kleine Erweiterung einbauen und zwar gibt es nicht nur einen "onStateChange" Event auf den man lauschen kann, sondern auch einen "onError" Event, der gefeuert wird, wenn ein Fehler mit einem Video auftritt. Jetzt ist meine Frage, wie ich noch zusätzlich auf folgendes verwirkliche: PHP-Code:
Ich weiß einfach nicht ob ich Teile meines Codes wiederholen muss, oder wie das am einfachsten zu lösen ist? Danke für die Hilfe. |
Eine globale Funktion ist hier keineswegs nötig, da wurde dir etwas falsches erzählt. Du kannst hier eine anonyme Funktion einsetzen, wie auch bei dem onError Event.
Code:
player.addEventListener("onStateChange", function( status ) { |
Danke für die schnelle Antwort.
Also dein Code müsste dann in der youtubePlayerReady() Funktion drin stehen, oder? Nur nochmal als Übersicht, das wäre mein ganzer (derzeitiger) Code. Bist du dir sicher, dass ich die globale Funktion nicht brauche? PHP-Code:
|
zweimal Ja.
|
Danke, aber Nein, das funktioniert leider nicht. Sobald ich die generateFunc() weggebe und die deine Zeile innerhalb der onYoutubePlayerReady Funktion schreibe, funktioniert das automatische steuern der Videos nicht mehr. Z.b. wenn ein Video fertig ist soll automatisch das nächste gespielt werden. Das funktioniert nur mit generateFunc().
PHP-Code:
|
Mit dem Code, den du geziegt hast, sollte das ohne Probleme funktionieren.
PHP-Code:
|
Danke, aber nein leider, das funktioniert nicht. Das klappt nur mit der Version die ich eben gepostet habe. Aber solange meine Version funktioniert bin ich schon zufrieden, ich wollte nur wissen, ob das so in Ordnung ist wie ich das geschrieben habe, oder ob ich da technisch gesehen einen Fehler mache.
|
Wie gesagt das muss funktioneren, wenn es bei dir nicht tut, dann liegt das an dem Code den du uns nicht gezeigt hast oder du hast einen Fehler eingebaut (der in der Fehlerkonsole angezeigt wird)
Technisch gesehen hast du unötige globale Funktionen. Ob du einen Fehler gemacht hast, läßt sich natürlich nicht sagen ohne den kompletten Code zu kennen. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:08 Uhr. |
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
© Dirk H. 2003 - 2023