0
<iframe id="chgMe" src="Source1.htm">Frames are not supported on your browser.</iframe>

<button onclick="document.getElementById('chgMe').src='Source2.htm'">Next</button>

うまく機能しますが、同じ id で 2 つ以上の iframe を生成すると、2 番目、3 番目、4 番目などの iframe が応答しません。試しdocument.getElementByTagName();てみdocument.getElementByName();ましたが、何も機能しませんでした

4

3 に答える 3

0

ID 属性は一意である必要があり、代わりにクラスを使用するか、IFrame を追加するときに新しい ID を生成する必要があります。

于 2012-08-12T19:41:44.363 に答える
0

同じ要素を複数持つことidはできません。

<button id="change_src">Next</button>

jQuery

$('#change-src').on('click', function() {
  $('#chgMe').attr('src', 'Source2.htm?' + (new Date()).getTime();
});

id好きなようにパターンを維持し、chgMe_1, chgMe_2以下のようにコードを変更できます。

$('#change-src').on('click', function() {
  $('[id*=chgMe_]').attr('src', 'Source2.htm?' + (new Date()).getTime();
});

containsiframeのすべてを選択します。idchgMe_


または、代わりにclass、すべてiframeに共通のものを使用して、次のように使用することもできます。

$('#change-src').on('click', function() {
  $('.common_cls_name').attr('src', 'Source2.htm?' + (new Date()).getTime();
});

ノート

(new Date()).getTime()キャッシュを防ぐためのもので、上記のすべてのコードはsrcすべてを変更iframeします(質問によると)

于 2012-08-12T19:33:14.970 に答える
0

新しい iframe を作成するための関数を作成し (まだ作成していない場合)、それぞれに ID chgMe0、chgMe1、chgMe2、... を指定し、[次へ] ボタンをクリックすると別の関数を呼び出すことができます。このような:

var framecount; // global variable that counts all frames

function next(nextpage)
{
    var i;
    for(i=0;i<framecount;i++)
    {
        document.getElementById("chgMe"+i).src=nextpage;
    }

}
于 2012-08-12T19:40:24.473 に答える