我正在寻找一种方法来使用jQuery在单击其文档元素时获取iframe的id。代码将从父窗口初始化运行。
$frame = $("<iframe class='frame'></iframe>").load(function(){
$(this).contents().bind("click", function(e){
alert($(this).attr("id"));
});
}
警报显示为未定义。
或者我也尝试过:
alert($(this),window.parent).attr(“id”);
答案 0 :(得分:1)
$(document).ready(function(){
$('iframe').click(function(){
Id=$(this).attr('id');
alert(Id);
});
});
答案 1 :(得分:1)
您会注意到前一个示例仅在您为iframe提供边框并单击该边框时起作用(即单击iframe元素,而不是单击它包含的文档元素,我认为这就是您要求的内容)。
以下代码将鼠标悬停处理程序绑定到iframe,iframe在将onclick处理程序绑定到其内容之前抓取iframe的ID。请注意,只有当iframe指向您网站上的其他网页而不是另一个网页上的网页时,此功能才有效。
$(document).ready(function(){
$('iframe').bind('mouseover', function(){
var iframeID = $(this).attr('id');
$(this).contents().unbind();
$(this).contents().bind('click', function(){
alert(iframeID);
});
});
});
答案 2 :(得分:0)
没有iframe的内容,根据Dio的例子,小提琴如下,http://jsfiddle.net/sameerast/FUUz9/
<iframe id="frame" class='frame' width="200" height="200"></iframe>
答案 3 :(得分:0)
这是一个古老的问题,但我仍在为那些仍然遇到这个问题的人提供答案:
HTML内容:
<iframe class='frame' id="iframe-1"></iframe>
JQuery在点击其内容时获取iframe ID:
setTimeout(function(){
$('.iframe').each(function(){
var _this = $(this);
_this.contents().find('body').focus(function(){
var iframe_id = _this.attr('id');
alert(iframe_id); // do whatever with it
});
});
},1000);
我希望它有所帮助...