0

iFrame属性 (実際にはテキスト ボックスの値)を変更する方法を探しています。はiFrame別のドメインにあり、アクセスできます。私が理解していることから、ページ全体(iFrame含まれている)がレンダリングされた後にそれを行う必要があります。私はそのようなことを試しました:

<script type="text/javascript">
$(window).load(function() {
    alert("test");
    d = document.getElementById("myframe");
    d.contentWindow.document.getElementById("frametxtbox");
});
</script>

しかし、私は常に次のエラーが発生します。

未定義のメソッド「getElementById」を呼び出せません

また、アラートがレンダリングされる前にポップアップすることにも気付きました。そのiFrameため、ページがフレーム値にアクセスする前にスクリプトが実行されると思われるため、エラーが発生します。私は Web 関連のプログラミングに関する知識がほとんどないため (常にバックエンド側で作業していました)、私の質問が意味をなさない場合はご容赦ください。

4

1 に答える 1

0

iframe が別のドメインを指している場合、同じオリジン ポリシーが適用されます。これは、そのドキュメントにアクセスしようとする前に、wiki を確認してポリシーを緩和する必要があることを意味します (詳細についてはリンクを確認してください)。その後、メイン ページのドキュメントではなく、ready イベントを iframe ドキュメントにバインドする必要があります。

$(window.frames['myframe'].document).ready(function() { alert('moo'); });

これが役立つかどうかを確認してください:)

于 2012-10-30T16:19:47.063 に答える