web-dev-qa-db-ja.com

JqueryでiframeにURLをロードするにはどうすればよいですか

クリック時にiframeをロードしたいのですが、これはこれまでのものです。

$("#frame").click(function () { 
      $('this').load("http://www.google.com/");
    });

機能しません。これは完全なコードです: JS Bin

42
Youss
$("#button").click(function () { 
    $("#frame").attr("src", "http://www.example.com/");
});

HTML:

 <div id="mydiv">
     <iframe id="frame" src="" width="100%" height="300">
     </iframe>
 </div>
 <button id="button">Load</button>
95
Dogbert
$("#frame").click(function () { 
    this.src="http://www.google.com/";
});

単純なJavaScriptはjQueryよりもクールで高速な場合があります;-)

9
Christophe

$(this).load("/file_name.html");を試してください。このメソッドは、ローカルファイルを対象としています。

(別のドメインの)リモートファイルをターゲットにすることもできます。 http://en.wikipedia.org/wiki/Same_Origin_policy

9
Chris

ここにiframeが表示されます:

<iframe class="img-responsive" id="ifmReport" width="1090" height="1200" >

    </iframe>

スクリプトで読み込みます:

 $('#ifmReport').attr('src', '/ReportViewer/ReportViewer.aspx');
1
Luqman Cheema

万が一、この古い質問に誰かがつまずいた場合に備えて:

コードはある意味で理論的にはほぼ正しいものでした。問題は$(this)ではなく$( 'this')を使用していたため、jQueryにタグを探すように指示したことです。

$(document).ready(function(){
  $("#frame").click(function () { 
    $(this).load("http://www.google.com/");
  });
});

ただし、load()関数自体はAJAX関数であり、GoogleはこのページをAJAXでロードすることを明確に許可していないため、スクリプト自体は現在そのままでは機能しませんメソッドは、相対パスを使用して独自のドメインからページをロードするために使いやすいものでなければなりません。

0
Paul Ghiran