jQuery - 显示点击的iFrame的URL

时间:2013-01-02 16:34:11

标签: iframe

我有多个URL的MySQL数据库。 每个网址都显示在一个iframe中,因此3个网址= 3个iframe。我这样显示它们。

...
$resu = mysql_fetch_array ($consultation);
echo "<iframe src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>";
...

通过这个脚本,我能够知道点击的iframe的URL(不完全是,除了它在jsFiddle中不起作用,但在我的PC中是的。(http://jsfiddle.net/7UxHv) /)).

<script type='text/javascript'>
$(window).load(function(){
    $('iframe#iframe').load(function(){
        alert($('#iframe').attr('src'));
    });
});
</script>

但实际上它显示的是第一个数据库行,而不是单击的那一行。

无论如何要显示用该脚本或其他表单单击的那个来执行此操作?谢谢。

2 个答案:

答案 0 :(得分:0)

试试这个......将'src'改为'data-src'......并尝试以下内容......

echo "<iframe data-src='".$resu['URL']."' onload='load(this)' id='iframe'></iframe>";

$('#iframe').click(function() {
    alert($('#iframe').data('src'));
});

也可以使用onclick()...而不是使用onload尝试...

可能会工作......

答案 1 :(得分:0)

编辑:

请注意,您正在生成具有相同ID的多个元素.id应该是唯一的。

这可能就是为什么你只能让第一行起作用。


我认为以下代码应该有效:

HTML:

<iframe src='.$resu['URL'].' onload='loadIframe(this)' scrolling='no'></iframe>​

JS:

window.loadIframe = function(frame) {
    alert("Loaded "+$(frame).attr('src'));
}