2
$('<script/>', {
    src: '/path/to/javascript.js',
    type: 'text/javascript'
}).appendTo($('#iframe').contents().find('body'));

間違っている場合は訂正してください。ただし、JSをiframeにロードする必要があると思います。に追加してみましたhead

問題
javascript.jsは実行されますがconsole.debug(this)、そのスクリプトではトップフレームウィンドウが返されます。スクリプトが実際にiframeに含まれていることを確認しようとしましたが、実際にはその方法がわかりません。

Firebugの出力

さらに、$('a')fromを実行javascript.jsすると、必要なiframe内のすべてのリンクではなく、トップフレーム内のすべてのリンクが返されます。

御時間ありがとうございます!


更新:ダウンロードできる分離されたテストケースをまとめました。コンソールを確認し、これがトップフレームであることに注意してください(変数_TOPで確認できます)。

4

2 に答える 2

1

これは一種のグレーゾーンです。jQueryを使用したこの特定のアクションについては、使用しているフードの下で、importNodeまたはadoptNodeブラウザーに依存しています。ただし、IE はどちらもサポートしていません (最後に調査したため)。

ドキュメントへの参照を取得し、スクリプトを記述したい場合があります。記憶が正しければ:

$('<iframe/>')[0].contentDocument.document.write('script');
于 2011-05-03T16:07:43.460 に答える
0

同じドメインのiframeアップデートで何かを作成することができました:http:
//jsfiddle.net/maniator/DX6bg/1/

2つのURLが同じドメインにあることを確認してください。
wwwからのインがあるかどうかを含む)

アップデート

次のようにテストできます。

$(function(){
   var iframe = $('#iframe').contents();

   $('body', iframe).append($('<div>', {text: 'this is a test'}));
});

これで、iframeにテキストが表示されれば、this is a testそれが機能していることがわかります。

于 2011-05-03T14:20:21.707 に答える