Videoplayer mit Ajax laden
am 25.10.2017 - 18:06 Uhr in
Ich habe in meiner Drupal 7 Seite (Commerce Kickstart) mehrere Seiten (Kategorien, druch Views erstellt) mit Videos. Beim Normalen laden der Seite werden die Player wie gewünscht dargestellt (Ich benutze video.js als Format für die Videos):
https://i.stack.imgur.com/DEkwC.png
Das HTML Element hat dann als class="vjs-tech"
. So sieht das gesamte Element aus:
<video id="videojs-13-field-video-preview-video_html5_api" data-setup="{}" class="vjs-tech" preload="auto" tabindex="-1">
<source src="path" type="video/mp4">
</video>
Ich benutze Ajax Facets, um die Einträge auf der Seite zu filtern. Die Seite wird beim Filtern also nicht komplett neu geladen, sondern durch Ajax werden nur die Videos geladen. Dabei sieht der Player allerdings vollkommen anders aus:
https://i.stack.imgur.com/RZWkM.png
Die Höhe wird um 25% reduziert und die Player-Kontrollleiste wird permanent eingeblendet. Das HTML des Videos hat sich verändert und es wurden andere class tags und ids gesetzt:
<video id="videojs-13-field-video-preview-video" data-setup="{}" class="video-js vjs-default-skin" width="220" height="199" controls="controls" preload="auto">
<source src="path" type="video/mp4">
</video>
Ich hab etwas gesucht und gelesen, dass es beim dynamischen Laden (Ajax) irgendwelche Probleme bzgl. des benötigten JavaScripts für den Videoplayer gibt:
https://stackoverflow.com/questions/21541440/load-videojs-with-ajax
http://docs.videojs.com/docs/guides/setup.html#alternative-setup-for-dyn...
Allerdings habe ich keine Ahnung, wie ich das ganze auf meiner Seite fixen kann. Ich hab schon etwas mit JavaScript rumgespielt und versucht, manuell alle Videos an VideoJS zu übergeben, aber das hat nichts gebracht.
- Anmelden oder Registrieren um Kommentare zu schreiben
Wenn per Ajax Content geladen
am 25.10.2017 - 19:01 Uhr
Wenn per Ajax Content geladen wird, muss das Javascript per .on()-Methode geladen werden. Sonst funktioniert es nicht.
https://stackoverflow.com/questions/20962471/jquery-function-doesnt-work...
http://api.jquery.com/on/
Drupal rockt!!!
Ich bin ein ziemlicher
am 25.10.2017 - 19:35 Uhr
Ich bin ein ziemlicher Anfänger was JS und Jquery angeht. Kannst du das etwas detaillierter sagen? Wo genau muss jetzt welches JavaScript hin. Ich kümmere mich bis jetzt ja quasi garnicht darum, sondern vertraue darauf das die Videos mit video.js einfach so abgespielt werden.
Ich nehme mal an, es geht um den letzten Kommentar bei Stackoverlow. Ich binde also die Scriptfunktion an eine Funktion, die beim Klick auf den Filter ausgelöst wird?