[英]how to register div click event?
我正在尝试为我的div注册clickevent。 如果我将iframe放在div中,它就不会工作。 如果它在外面它会工作。 当iframe在div中时,我怎样才能使它工作?
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style>
#mydiv
{
height: 300px;
width: 300px;
border: 1px solid;
}
</style>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script>
$(function () {
var clicks = 0;
$('#mydiv').bind('click', function (e) {
clicks++;
$("#numberclicks").html(clicks);
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<span id="numberclicks"></span>
<div id="mydiv">
<iframe id="myframe" src="http://www.jquery.com" width="300" height="300" />
</div>
</div>
</form>
</body>
</html>
iframe正在吞下div的click事件,因为它是一个跨站点脚本的东西,你可以做的是使用z-index将if放在iframe的顶部并从上层div收集点击。
这是因为实际点击事件来自iframe
的内容, iframe
是一个完全不同的文档。 为了处理这些,您必须附加到该文档的click事件。
iframe是一个完全不同的DOM文档,这就是为什么当你点击DIV时,浏览器实际上是在iframe内容上呈现点击,你可以在iframe上放一个空div来模仿那个,这就像是这个:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style>
#mydiv
{
height: 300px;
width: 300px;
border: 1px solid;
}
#clickerDiv
{
height: 300px;
position: absolute;
width: 300px;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(function () {
var clicks = 0;
$('#mydiv').bind('click', function (e) {
clicks++;
$("#numberclicks").html(clicks);
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<span id="numberclicks">0</span>
<div id="mydiv">
<div id="clickerDiv"></div>
<iframe id="myframe" src="http://www.jquery.com" width="300" height="300" />
</div>
</div>
</form>
</body>
</html>
您可以将click事件链接到幻像div,甚至链接到主div容器!
所有答案大多都是正确的--IFRAME创建一个新的窗口对象。 您将连接到父窗口中的“#mydiv”元素,而不是IFRAME的窗口。 当在DIV中发生单击事件时,它将通过DOM树“冒泡”。 如果事件没有“停止”冒泡,您可以捕获并处理任何DIV的父元素中的事件。 但是,因为它位于IFRAME中,所以它将停止在文档级别冒泡,并且不会继续在父框架中冒泡。
现在,如果IFRAME与父框架位于同一个域中,则可以访问该文档的元素,并将事件处理程序连接到这些元素。 但是,您似乎正在跨越违反“同源政策”的域工作: http : //code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_DOM_access
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.