2

私はmain.html、その中に<ifram id='if' name='if'>、別のサイトをロードするを持っています(これは、Facebookのように私のドメインにないサイトをロードします)。

に読み込まれるサイトがありiframe<form name='form2' id='form2'>その中にあります<input type='text' name='tb' id='tb'>

また、にはボタンがあり、ボタンをクリックすると、テキストボックス内のテキストが「az」に変わるmain.htmlように、ボタンにJavascriptを配置できるかどうか疑問に思っていました。tb

どうすればこれを行うことができますか?

4

3 に答える 3

2

セキュリティ上の理由から禁止されているクロスサイトスクリプティングになるため、これを行うことができます。プロキシを使用しiframeて、独自のサイトを介してHTMLをフィードし、ブラウザの観点からクロスサイトにならないようにすることができます。

が同じドメインからのものである場合<iframe>、要素には次のように簡単にアクセスできます。

$("#iFrame").contents().find("#someDiv")

テスト: http: //jsfiddle.net/Yy6tu/を押しCtrl+Shift+jて、何が得られたかを確認してください。


更新:同じフォルダーにファイルがある場合は、次のother.htmlように実行できます。

main.html

<head>
    $('document').ready(function(){
        $("#if").contents().find("#b").val('lalalala');
    });
</head>

<body>
    <input type='button' name='executer' value="Maro">
    <iframe width="600" height="400" src='other.html' name='if' id="if"></iframe>
</body>

other.html

<form action="x" name="form2" id="form2"> 
     <input type="text" name="tb" id="b">
</form>

それはうまくいくはずです!

于 2013-02-06T07:19:30.880 に答える
1

私の友人は不可能です。クロスドメイン保護は、一部の機能を制限しますが、非常に有利です。

スタックオーバーフロー

これは役立つかもしれません:

http://msdn.microsoft.com/en-us/library/bb735305.aspx

考えられる解決策は、iframeを再読み込みすることです。そして、テキスト値をiframeのURLクエリ文字列のパラメータとして追加します。しかし、それはとてつもない解決策になるでしょう。

別の可能な解決策は、中間iframeまたはプロキシiframeとして知られているものを使用することです。これは役立つかもしれません:

http://www.tomslabs.com/index.php/2012/06/iframes-and-javascript-cross-domain-security/

編集:

iframeがページと同じドメインにある場合、これは機能するはずです。

$('#if').contents().find('#b').val('fd');
于 2013-02-06T07:20:17.090 に答える
0

同一生成元ポリシーに直接違反するため、これは厳密には不可能です。

于 2013-02-06T07:16:54.200 に答える