[英]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.