gpt4 book ai didi

javascript - 使用jquery在iframe中捕获鼠标右键单击事件

转载 作者:行者123 更新时间:2023-11-29 17:23:15 25 4
gpt4 key购买 nike

我需要使用任何 javascript 或 jquery 代码在 asp.net 的 iframe 中捕获鼠标右键单击事件。

下面是我到目前为止尝试过的代码。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Detect IFrame Clicks</title>

<script type="text/javascript" language="javascript" src="JScript/jquery-1.7.1.js"></script>

<script type="text/javascript" language="javascript" src="JScript/jquery.ui.core.js"></script>

<script type="text/javascript" language="javascript" src="JScript/jquery.ui.widget.js"></script>

<script type="text/javascript" language="javascript" src="JScript/jquery.ui.mouse.js"></script>

<script type="text/javascript">
document.onmousedown = onMousebtClick
var isOverIFrame = false;
$(document).ready(function() {
function processMouseOut() {
isOverIFrame = false;
top.focus();
}

function processMouseOver() {
isOverIFrame = true;
}

function processIFrameClick() {
if (isOverIFrame) {
log("CLICK << detected. ");
onMousebtClick();
}
}

function log(message) {
var console = document.getElementById("console");
var text = console.value;
text = text + message + "\n";
console.value = text;
}

function attachOnloadEvent(func, obj) {
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('load', func, false);
} else if (typeof document.addEventListener != 'undefined') {
document.addEventListener('load', func, false);
} else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onload', func);
} else {
if (typeof window.onload == 'function') {
var oldonload = onload;
window.onload = function() {
oldonload();
func();
};
} else {
window.onload = func;
}
}
}

function init() {
var element = document.getElementsByTagName("iframe");
for (var i = 0; i < element.length; i++) {
element[i].onmouseover = processMouseOver;
element[i].onmouseout = processMouseOut;
}
if (typeof window.attachEvent != 'undefined') {
top.attachEvent('onblur', processIFrameClick);
}
else if (typeof window.addEventListener != 'undefined') {
top.addEventListener('blur', processIFrameClick, false);
}
}

attachOnloadEvent(init);

});

function onMousebtClick() {
switch (event.button) {
case 1:
alert("leftclick");
break;

case 2:
alert("right click");
break;
}
}
/*document.onmousedown = onMousebtClick*/
</script>

</head>
<body id="mybody">
<iframe src="http://www.microsoft.com" width="800px" height="300px" id="ifrm">
</iframe>
<br />
<br />
<form name="form" id="form" action="">
<textarea name="console" id="console" style="width: 300px; height: 300px;" cols=""
rows=""></textarea>
<button name="clear" id="clear" type="reset">
Clear</button>
</form>
</body>
</html>

我可以检测到 body 标签中的鼠标右键单击,但我无法检测到 iframe 中的鼠标右键单击事件。

谁能帮帮我

最佳答案

如果 iframe 中的页面位于同一域中,则这是可能的。

同一域的 IFrame 页面: http://fiddle.jshell.net/rathoreahsan/MNtw8/8/show/

查看演示: http://jsfiddle.net/rathoreahsan/gJtkW/

如果您像现在这样在 iframe 中访问其他域的页面,则不推荐这样做。

已编辑:参见下面给出的一些引用资料,希望对您有所帮助。

  1. the-iframe-cross-domain-policy-problem

  2. cross-domain-iframe-resizing

关于javascript - 使用jquery在iframe中捕获鼠标右键单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11223210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com