0

申し訳ありませんが、これをキーワードで検索するための適切な用語がわかりません...

そこで、初心者向けの簡単な演習として、「test.html」というファイルを (デスクトップ上に) 作成して、ブラウザにロードしてページに表示されるボタンをクリックすると、ウィキペディアのメイン ページの記事数がカウントされるようにしてみました。ボタンの下のページに表示されます。

誰かが私にiframeを使ってみるように言ったので、私はこれを思いつきました:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript"">

function get_count(){
    var articlecount = document.getElementById("wiki_page").contentWindow.document.getElementById("articlecount").getElementsByTagName("a")[0].innerHTML;
    document.getElementById("put_number_here").innerHTML = articlecount;
}
    </script>

</head>

<body>

    <iframe id="wiki_page" style="display:none" src="http://en.wikipedia.org/wiki/Main_Page"></iframe>

    <input type="button" onclick="get_count()" />
    <p id="put_number_here"><p>

</body>
</html>

動作しません。これをスクラッチパッド (Firefox 17 を使用) でテストすると、次のようになります。

var x = document.getElementById("wiki_page").contentWindow.document.getElementById("articlecount").getElementsByTagName("a")[0].innerHTML;
alert(x);
/*
Exception: Permission denied to access property 'document'
@Scratchpad:10
*/

(そして直接alert(document.getElementById("articlecount").getElementsByTagName("a")[0].innerHTML);完全に機能http://en.wikipedia.org/wiki/Main_Pageするので、それが問題ではないことはわかっています。ウィキペディアのメインページのソースを新しいファイル「test2.html」にコピーし、それをiframeのsrcとして設定しても機能します。)

私はこれを完全に間違った方法でやろうとしていますか?

4

2 に答える 2

0

iFrame が同じドメインを参照していない限り、iFrame 内の要素にはアクセスできません。

同じドメインの呼び出しについては、次のリンクを参考にしてください。

iframe から親ウィンドウ関数を呼び出す

別のドメインの場合は、このリンクを参考にしてください。

Javascript を使用して Iframe からクロス ドメイン URL アクセスを実装するにはどうすればよいですか? 脚本

于 2013-01-10T08:11:54.560 に答える
0

次を使用して、他のフレームを参照できます。

window.frames["wiki_page"]

次に、次を使用して DOM 内の要素を参照できます。

window.frames["wiki_page"].document.getElementById ("articlecount");

したがって、あなたの場合、次を試すことができます:

var targetFrame = window.frames["wiki_page"];

次に、次を使用して要素にアクセスします。

targetFrame.document.getElementById("IDOfSomething");

iframe の名前が wiki_page などであることを確認してください。

于 2013-01-10T08:16:05.753 に答える