1

iframe とフレームセットにネストされたフレームにある HTML 要素を javascript で取得しようとしています。HTML 構造は次のようになります。

<iframe id="central_iframe" name="central_iframe" (...)>
    <frameset cols="185, *" border="0" framespacing="0" frameborder="0">
        <frame src="/subdomain" name="SideFrame" id="SideFrame" (...)>

以前は、次のようにしました。

myIframe = document.getElementById('central_iframe');
mySideFrame = myIframe.contentDocument.getElementById('SideFrame');
myElement = mySideFrame.contentDocument.getElementById('iWantToGrabThis');

ただし、myIframe.contentDocument が null を返すため、ここでは機能しません。一方、myIframe.contentWindow は、プロパティをまったく持たないウィンドウを返します (したがって、myIframe.contentWindow.document は未定義です)。同様に、試してみると

central_iframe.SideFrame

また、プロパティをまったく持たないウィンドウも返されます。

編集: このページは私のものではないため、ソースを変更できません。私はそれと対話しようとしているだけです。

Chrome 開発者ツールでテストを行っています。GeckoFX でも同じ結果が得られました。どんな助けでも大歓迎です。

4

2 に答える 2

0

iframe は、属性を持つ他のソースを指していsrcます! iframe 内に HTML を埋め込むことはできません。フレームセットを、iframe src で指定した html ファイルに入れます。その後、スクリプトから iframe を選択できるようになりますwindow.parent。でフレームセットのフレームにアクセスできますdocument.frames

于 2012-10-22T08:46:20.870 に答える
0

さらに調査を行った結果、ジャスティン・モーガンの提案は正しく、私が望んでいることは不可能であるように思われます. 最初にブラウザに親 iframe をロードすることで、部分的な回避策を作成しました。これで子フレーム(SideFrame)に正常にアクセスできるようになりました。

于 2012-10-25T15:20:02.607 に答える