0

我有多个 URL 的 MySQL 数据库。每个 URL 都显示在一个 iframe 中,因此 3 个 URL = 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>

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

无论如何要显示使用该脚本或其他表单单击的那个?谢谢。

4

2 回答 2

0

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

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

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

也不要使用 onload 尝试使用 onclick() ...

可能工作...

于 2013-01-02T16:41:52.227 回答
0

编辑:

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

这可能就是为什么你只让第一行工作的原因。


我认为下面的代码应该可以工作:

html:

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

JS:

window.loadIframe = function(frame) {
    alert("Loaded "+$(frame).attr('src'));
}
于 2013-01-02T16:44:34.667 回答