0

重複の可能性:
javascriptは親ページからiframe要素にアクセスできますか?

ドキュメントにiframeがあり、JQueryを使用してその中のいくつかの属性を取得(および変更)したいと考えています。これはコードです:

var iframe = $('iframe');

        $("#id").click(function() {
            var btn = iframe.contents().find('a[href*="script.php"]'); 
            alert(btn);
            for (var i=0, attrs=btn.attributes, l=attrs.length; i<l; i++){
                alert(attrs.item(i).nodeName);
            }
         });

最初のアラートに「[objectObject]」と表示された後、エラーが発生します。

安全でないJavaScriptは、URLhttp://domain.wia-games.net/のフレームから URLhttp ://somedomain.ru/somescript.phpのフレームにアクセスしようとします 。ドメイン、プロトコル、およびポートは一致する必要があります。

Uncaught TypeError:未定義のプロパティ'length'を読み取ることができません

問題をどのように解決すればよいですか?

UPD。console.log(btn):

[prevObject:st.fn.st.init [0]、context:document、selector: "a [href * =" script.php "]"、jquery: "1.9.0"、constructor:function…] context:#ドキュメントの長さ:0 prevObject:st.fn.st.init [0]セレクター: "a [href * =" script.php "]" proto:Object [0]

4

2 に答える 2

2

これは、セキュリティ上の理由からブラウザに実装されている制約です。同一生成元ポリシー

安全な回避策が存在します:

于 2013-01-25T01:50:54.977 に答える
1

セキュリティ機能としてのほとんどのブラウザは、クロスサイトスクリプティングを禁止しています:http: //en.wikipedia.org/wiki/Cross-site_scripting

つまり、2つのオブジェクトは同じソースドメインを持っている必要があります。

回避策として、サーバー側の外部ページをクエリすることをお勧めします(たとえば、phpを使用)

于 2013-01-25T01:53:42.797 に答える