如何在Popup div中加载iframe内容。 单击每个链接将打开popup div 从每个链接,页面网址将加载到弹出div内的iframe href。
$(document).ready(function(){
$(".openpop").click(function(){
var x = $(this).attr('href');
alert(x);
y = x.replace('#', '');
alert(y);
$(".popup").toggle();
$("iframe").attr("href", y);
});
$(".close").click(function(){
$(this).parent().fadeOut("slow");
});
});
HTML
<a class="openpop" href="#http://www.google.com">Link 1</a>
<a class="openpop" href="#http://www.yahoo.com">Link 2</a>
<a class="openpop" href="#http://www.w3schools.com">Link 3</a>
<div class="wrapper">
<div class="popup">
<iframe src="">
<p>Your browser does not support iframes.</p>
</iframe>
<a href="#" class="close">X</a></div>
</div>
答案 0 :(得分:8)
首先,您不需要链接中的#。只需致电e.preventDefault();
即可停止执行该链接。
出于安全考虑,您无法打开每个链接,例如。谷歌。
此外,您可能不会使用切换,因为如果框架已经打开,您总是必须单击两次。
HTML
<div class="links">
<a class="openpop" href="http://getbootstrap.com/">Link 1</a>
<a class="openpop" href="http://www.jsfiddle.net">Link 2</a>
<a class="openpop" href="http://www.w3schools.com">Link 3</a>
</div>
<div class="wrapper">
<div class="popup">
<iframe src="">
<p>Your browser does not support iframes.</p>
</iframe>
<a href="#" class="close">X</a>
</div>
</div>
jquery
$(document).ready(function () {
$(".popup").hide();
$(".openpop").click(function (e) {
e.preventDefault();
$("iframe").attr("src", $(this).attr('href'));
$(".links").fadeOut('slow');
$(".popup").fadeIn('slow');
});
$(".close").click(function () {
$(this).parent().fadeOut("slow");
$(".links").fadeIn("slow");
});
});
当然,您必须对样式进行一些更改以获得更好的视图体验:)
答案 1 :(得分:0)
<script>
$(document).ready(function(){
$(".openpop").click(function(){
var x = $(this).attr('href');
y = x.replace('#', '');
$(".popup").show().html('<iframe src="'+y+'"></iframe>');
$("iframe").attr("href", y);
});
$(".close").click(function(){
$(this).parent().fadeOut("slow");
});
});
</script>
你无法在iframe中打开谷歌和雅虎这两个网站都不允许它请看这个链接 Why Iframe dosen't work for yahoo.com
但您可以使用此代码打开w3school
答案 2 :(得分:0)
您也可以使用此
$('#clickme').click( function(){
$('#showDiv').show();
$('#iframe').attr('src','your url');
});