Einbetten von Youtube Videos mittels iframe gibt "Unsafe JavaScript attempt ... "
Ich versuche zum einbetten eines YouTube-video mit diesem code:
<iframe width="425" height="319" frameborder="0" wmode="Opaque"allowfullscreen=""
src="http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent">
</iframe>
werden, und obwohl es ist in Ordnung, aber es gibt diese Fehlermeldung in der Konsole:
Chrome version 22.0.1229.94:
Unsafe JavaScript attempt to access frame with URL http://example.com/
von Rahmen mit URL http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent.
Domains, protocols and ports must match.Firefox version 17.0:
Fehler: Permission denied to access property 'toString'
Suchte ich herum, aber ich fand, dass es wahrscheinlich ein YouTube Problem und Sie sollten es lösen,
Die Frage ist: wie kann ich loswerden dieser Fehler? (mit allen Mitteln, auch durch Unterdrückung.)
Das ist ein bisschen eine Vermutung, so werde ich nicht veröffentlichen, als eine Antwort, aber ich vermute, dass ein Skript in der youtube-Inhalte ist versucht zu schauen, die Parameter der iframe get Parameter, wie "wmode" und allowfullscreen. Ihr browser sieht das, korrekt, da eine cross-site-scripting-Versuch, das ist aus Sicherheitsgründen nicht erlaubt. Wenn Sie Betten alle erforderlichen Parameter von youtube in der URL-query-string statt, dann könnten Sie verhindern, dass es dies zu tun.
Auch konnte nicht helfen, aber bemerken, dass Sie mit wmode=opaque in das iframe, und wmode=transparent in der URL.
Ich Las viele Meinungen, warum dies geschieht, und viele sagen, dass es ist, weil die geladenen Youtube-APIs innerhalb des iframe versucht, auf ein übergeordnetes element, die gegen Sicherheitsstandards, und es wird bereits berichtet, wie ein Fehler, aber was mich mehr besorgt, hier ist, wie zu stoppen diese Fehlermeldung erscheint in der Konsole, und nicht nur darauf warten, Youtube-Entwickler, um es zu lösen. Und über die "wmode", habe ich nicht bemerkt 🙂 , danke
Meine Vorschläge (erraten) - Lösung ist in der letzten Zeile von meinem Kommentar - Betten alle erforderlichen Parameter von youtube in der URL-query-string - hat es einen Versuch Wert sein.
Ich habe es versucht, aber immer noch der Fehler
Auch konnte nicht helfen, aber bemerken, dass Sie mit wmode=opaque in das iframe, und wmode=transparent in der URL.
Ich Las viele Meinungen, warum dies geschieht, und viele sagen, dass es ist, weil die geladenen Youtube-APIs innerhalb des iframe versucht, auf ein übergeordnetes element, die gegen Sicherheitsstandards, und es wird bereits berichtet, wie ein Fehler, aber was mich mehr besorgt, hier ist, wie zu stoppen diese Fehlermeldung erscheint in der Konsole, und nicht nur darauf warten, Youtube-Entwickler, um es zu lösen. Und über die "wmode", habe ich nicht bemerkt 🙂 , danke
Meine Vorschläge (erraten) - Lösung ist in der letzten Zeile von meinem Kommentar - Betten alle erforderlichen Parameter von youtube in der URL-query-string - hat es einen Versuch Wert sein.
Ich habe es versucht, aber immer noch der Fehler
InformationsquelleAutor AbdelHady | 2012-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kannst es nicht stoppen, zumindest nicht in jedem Weg, den ich kenne (und ich habe viel versucht). Es gibt ein Skript in dem iframe-destination, die versucht, Zugriff auf Ihr Dokument, wahrscheinlich auf der Suche für Globale Funktionen, die es können, rufen Sie zum aktivieren der API.
Andere Sache ist, dass der Fehler weiterhin besteht, auch wenn Sie mit Ihren eigenen iframe-API: http://jsbin.com/izabed/1/edit
Gibt es keinen Schaden in diesem, deinem video funktioniert einwandfrei. Aber es sieht irgendwie Fett, wenn Sie führen Sie es in einer Konsole. Sie sollte wohl auch diese als parameter, und zuerst dachte ich, dass dies war die Idee der
origin
parameter, aber es macht keinen Unterschied.Es ist auch erwähnenswert, dass Ihre eigenen demo zeigt den gleichen Fehler (und andere). Auch, wenn Sie das
embed
- tag statt iframe, wird es nicht angezeigt Fehler.So, Sie könnten so etwas tun, um zu verhindern, dass die Fehler in die meisten desktop-Browser:
+1 für die Zeile "Sie können es nicht stoppen".Das ist absolut direkte Antwort, statt zu schreiben über Cross-domain-Sicherheit, etc.
Genial! Danke!!!
InformationsquelleAutor David Hellsing
Verschieben die Diskussion aus den Kommentaren zu dieser Antwort.
In kurzen, das problem ist, dass cross-domain-JS-Objektzugriff ist nicht erlaubt, die in Ihrem Fall, ein Skript zu youtube.com versucht zu tun, auf die übergeordnete Seite.
Wenn Sie nur wollen, um zu zeigen, das youtube-video, die Sie verwenden können
<embed>
- tag statt.InformationsquelleAutor user1803112
Fügen Sie einfach
?html5=1
um diesen Fehler zu vermeiden. (Swich to HTML5 player)InformationsquelleAutor Kārlis Millers
Welcher browser ist es ?
Wenn ich versuche zum Anhängen eines iframe mit JavaScript in Firefox auf dieser Seite, der Fehler/Warnung nicht angezeigt.
Die src des iframe habe ich angehängt, ist die gleiche wie in deinem Beispiel. Darüber hinaus iframes sind erlaubt, werden von verschiedenen Domänen. Können Sie versuchen, dieses Stück code :
var iframe = document.createElement('iframe'); iframe.setAttribute('src' , 'http://www.youtube.com/embed/8vJwFvFi4ZY?wmode=transparent'); document.body.appendChild(iframe);
und sehen, ob der Fehler immer noch kommt ?ja, es kommt immer noch in der Konsole von firefox & chrome, auch wenn Sie den code in eine leere html-Seite mit nur diesem code oder nur die Frage ist iframe
übrigens, ich havn ' T geschrieben das firefox-Fehler vor, denn es war nicht klar genug, wie der chrome - Fehler, den firefox: "Fehler: Permission denied to access property 'toString'"
Warum sind Sie versuchen zu tun, es per iframe und nicht in einem <embed> tag ?
InformationsquelleAutor user1803112
Warum Javascript, wenn du nur CSS verwenden? Es funktioniert bei jedem.single.Zeit. Sie können sogar beliebige Videos in ein responsive-slider.
ODER besuchen Sie einfach: http://embedresponsively.com/
Naja, kein javascript, keine Fehlerbehandlung 😉
Ich habe nicht verwenden ein javascript laden das video in Erster Linie habe ich mich auf den iframe, so wie du, aber die Fehler aus dem code geladen, innerhalb des iFrames, nicht von mir
InformationsquelleAutor Bic Mitchun