1

これは機能します…</p>

<a href="page.html" target="frameName">Link text</a>

しかし、これは…</p>ではありません

<script type="text/javascript">
    window.onload = function() {
      var a = document.getElementById("mylink");
      a.onclick = function() {
        parent.document.getElementById('frameName').src = 'page.html';
      }
    }
</script>

<a id="mylink" href="page.html">LINK</a>

あるiFrameから別のiFrameにIDで要素を取得できない理由はありますか?また、私はコードをほとんど知らないので、明らかな場合は事前に謝罪します。

4

1 に答える 1

0

まず、IFrame 内のサイトのセキュリティにより、この種の操作が可能になっていることを確認します。このリンクをチェックしてください: 「X-Frame-Options によって禁止されている表示」を克服する

次に、アンカー タグのターゲットについて考えます。指定すると、デフォルトで自分自身になります。2 番目のコードでは、ターゲットは _self になります。したがって、リンクをクリックすると、JavaScript は IFrame のソースを変更しようとしますが、リンクはページ全体を変更しようとします。リンクの実装は、JS または HTML のどちらかを選択しますが、両方を選択することはありません。これは、実際のアンカー タグなしで iFrame を変更する 1 つの方法を示すためにまとめたものです。

<html>
<body>

<iframe id="frameName" src="page.html"></iframe>
<button onclick="changeFrame()">LINK</button>
<script>
    function changeFrame() {
          document.getElementById('frameName').src ='page2.html';
      }
</script>


</body>
</html>
于 2013-03-07T05:16:04.800 に答える