我有多个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>
但实际上它显示的是第一个数据库行,而不是单击的那一行。
无论如何要显示用该脚本或其他表单单击的那个来执行此操作?谢谢。
答案 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'));
}