43

私はこのコードとFireBugのこのエラーを持っています:

エラー:プロパティ'toString'へのアクセスが許可されていません

このエラーを修正するにはどうすればよいですか?

HTML:

<div class="yturl">http://www.youtube.com/watch?v=UNMLEZrukRU</div>

JS:

$("div.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) 
    {
         $(this).html("<iframe width=\"390\" height=\"315\" src=\"http://www.youtube.com/embed/"+regexyoutubeurl[2]+"\" frameborder=\"0\" allowfullscreen></iframe>");
    }
});

デモ:http: //jsfiddle.net/9e48p/

4

5 に答える 5

67

このエラーは、Adobe の Flash Player チームまたは Google のエンジニアによって修正される可能性があります。現時点では無視してください。これは、Flash Player のセキュリティ設定と、Youtube ページに埋め込まれた SWF ファイルに関連付けられています。この問題は過去に IBM によって報告されており、Mozilla Bugzilla エントリもあります。

Firefox 16.0.2 で Flash Player を無効にすると、エラー メッセージが表示されなくなります。コメント #37 を確認してください: https://bugzilla.mozilla.org/show_bug.cgi?id=434522#c37

価値があるのは、ページドメインと iframe ドメインがあるページの iframe に、actionscript 呼び出し (ExternalInterface など) がまったく含まれていないものであっても、フラッシュファイルが読み込まれると、このバグが発生することです。異なっています。これは、クロスドメインの状況が実際に存在する場合に、iframe の問題が発生することを意味します。ただし、実際にクロスドメイン呼び出しを試みているのかどうかは完全には明らかではありませんが、これを防止してエラーを出す必要があります。

Flash SWF 自体が「Location.toString」を実行するために呼び出そうとしていることは何もなく、ページ上の JavaScript がそれを実行していることも問題ではないため、唯一の選択肢は、Flash プラグイン自体に何かがあることです (9.0.124 はLocation.toString() を実行するために、親/トップ ウィンドウにその呼び出しを作成しようとしている) でテストしています。

バグは解決済みとしてマークされていますが、 https://bug434522.bugzilla.mozilla.org/attachment.cgi?id=321956に添付されているテスト ケースは、最新の Firefox バージョン (Firebug コンソール、またはFirefox エラー コンソール ウィンドウ)。

更新:
このバグは、古いバグ データベースにもアドビに登録されています:不適切な Flash プラグインの動作が原因で発生する FP-561 "Location.toString" uncaught (security) exception (バグの詳細を表示するにはアカウントが必要です)。バグがクローズされたときの最後のコメント:

Firefox 4 および 5 で最新の Flash Player 10.3.181.34 を使用してテストしたところ、そのような例外はスローされませんでした。バグが修正された可能性がありますよね?それでもこの問題が発生する場合は、新しいバグ システム https://bugbase.adobe.com/にバグを報告し、この元の JIRA レポートへのリンクを新しいバグに追加してください。新しいバグ システムで報告をフォローアップさせていただきます。

于 2012-10-27T14:39:36.627 に答える
48

コードに直接関連していないという理由だけで、このエラーを無視しないでください。

埋め込みが最初に非表示になっているときに発生するようです。

?html5=1埋め込み URL に追加するだけです。IE8 は引き続きフラッシュ バージョンを使用します。または、Youtube API を使用して動画を読み込みます。

于 2013-11-13T09:12:01.813 に答える
2

IframeURLコンストラクターに問題がある可能性があります。Iframeに読み込まれるYouTubeスクリプトでエラーがスローされています。スクリプトで動的に追加されないharcodedhtmlIframeでも、同じエラーがスローされます

<iframe width="390" height="315" src="http://www.youtube.com/embed/UNMLEZrukRU" frameborder="0" allowfullscreen></iframe>

HTMLバージョンのみのデモ http://jsfiddle.net/Lgt5f/

URLにパラメータがないことを再確認してください。そうでない場合は、YouTubeサポートリソースを確認してください。

于 2012-10-27T13:51:53.770 に答える
1

この問題は、拡張機能が正しく機能していないことが原因である可能性があります。

セーフモードを使用してFirefoxの問題をトラブルシューティングしてFirefoxを起動し、拡張機能の1つ、またはハードウェアアクセラレーションが問題の原因であるかどうかを確認します(デフォルトのテーマに切り替えます:Firefox/ツール>アドオン>外観/テーマ)。

于 2012-10-27T13:33:09.060 に答える
-1

そのエラーは無視してください。コードとは関係ありません。ただのブラウザのバグ。

于 2012-10-27T20:58:35.773 に答える