我正在尝试通过执行以下jquery代码将URL加载到iframe中。问题是当我尝试找到刚刚加载的iframe的元素时,它总是返回在上一次单击中加载的内容。并且第一次单击始终为null。有人可以帮我解决这个问题吗?感谢
$(document).ready(function() {
$('.Popup').click(function() {
$('#myiframe')
.attr('src', $(this).attr('href'))
.attr('frameborder', '0')
return false;
});
alert($('#myiframe').contents().find('.name').html())
});
答案 0 :(得分:1)
您需要等待获取的URL加载到iframe中,然后才能从中获取内容。您可以使用jquery .load() function执行此操作。像这样:
$(document).ready(function() {
$('.Popup').click(function() {
$('#myiframe')
.attr('src', $(this).attr('href'))
.attr('frameborder', '0')
.load(function() {
alert($(this).contents().find('.name').html())
})
return false;
});
});
答案 1 :(得分:0)
可能的原因是您在注册onclick事件句柄后发出警报。你应该做的就是这个,我想:
$(document).ready(function() {
$('.Popup').click(function() {
$('#myiframe')
.attr('src', $(this).attr('href'))
.attr('frameborder', '0');
$($("#myIframe").get(0).contentDocument).ready(function() {
alert($('#myiframe').contents().find('.name').html())
});
return false;
});
});
答案 2 :(得分:0)
看起来你只需要在警报响起之前等待iFrame加载。您可以使用load
功能。
$("#myiframe").load(function() {
alert("iFrame has loaded. You can now get content out of it");
});