① js中监听iframe点击事件
在js中,需要监听iframe的点击事件,但是因为浏览器的同源策略,是无法监听到的,只能另辟蹊径去解决它
注意,仅限于pc网站,意思就是必须要有鼠标移入移出iframe的操作
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Detect IFrame Clicks</title>
<script src="./jquery-3.4.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var currentObj=Object
var isOverIFrame = false;
function processMouseOut(e) {
console.log('out iframe',e.target);
currentObj=e.target
isOverIFrame = false;
top.focus();
}
function processMouseOver(e) {
// log("IFrame mouse >> OVER << detected.");
console.log('in iframe',e.target);
currentObj=e.target
isOverIFrame = true;
}
function processIFrameClick(event) {
if(isOverIFrame) {
console.log('click iframe',event.target,currentObj);
}
}
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);
});
</script>
</head>
<body>
<iframe src="https://www.hao123.com" width="80%" height="600px"></iframe>
<iframe src="https://www..com" width="80%" height="600px"></iframe>
</form>
</body>
</html>
复制上边整段html,打开console控制台,即可解决这个问题,亲测好用
② JavaScript怎样捕获鼠标右键点击浏览器事件
100 我做个小程序,在div中有数字,左键点击++,右键点击--。我现在用的是onClick,但是只能实现左键功能,邮件一点就出来浏览器的快捷菜单。请问怎样才能捕获右键点击事件,并在处理后终止。谢谢! 补充: 我研究了好一阵,真是愚钝。 <DIV onContextMenu="Click(this);return false;" 这个return false;绝不能写到Click里头去,那样的话结束的是方法,只有写在这里才是结束事件。JavaScript="xxx"不是委托一个方法处理事件,而是写进去一行调用方法的代码。 补充: 终于找到了,events如果不行的话就用window.event,你粘还不粘全了。让我郁闷好一阵。 好了,两种方法都可以。 onContextMenu的缺点是每个标签要定义两个事件,onClick、onContextMenu;
③ JS如何判断鼠标滚轮事件分析
我们都见到过这些效果,用鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的左右,上下滚动。这些都是通过js对鼠标滚轮的事件监听来实现的。今天这里介绍的是一点简单的js对于鼠标滚轮事件的监听。先分析原理:我们是通过判断鼠标滚动的获取一个值,然后根据这个值判断滚动的方向。然而不同浏览器有不同的获取方法,所以要分浏览器写方法。 不同浏览器不同的事件 首先,不同的浏览器有不同的滚轮事件。主要是有两种,onmousewheel(firefox不支持)和DOMMouseScroll(只有firefox支持),关于这两个事件这里不做详述,想要了解的朋友请先去了解鼠标滚轮(mousewheel)和DOMMouseScroll事件。过程中需要添加事件监听:兼容firefox采用addEventListener监听。 js返回数值判断滚轮上下 判断滚轮向上或向下在浏览器中也要考虑兼容性(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上也是不一致,但是含义一致,detail与wheelDelta只各取两个 值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。 具体的代码如下所示: <label for=wheelDelta滚动值:</label(IE/Opera)<input type=text id=wheelDelta/ <label for=detail滚动值:(Firefox)</label<input type=text id=detail/ <script type=text/javascript var scrollFunc=function(e){ e = e || window.event; var t1=document.getElementById(wheelDelta); var t2=document.getElementById(detail); if(e.wheelDelta){//IE/Opera/Chrome t1.value=e.wheelDelta; }else if(e.detail){//Firefox t2.value=e.detail;}} /*监听事件*/
④ js如何监听浏览器全屏时退出按钮事件
点击按钮退出全屏,这个点击事件就好了呗,这是最简单的事件了,至于按钮为什么出现,你可以仔细看看是鼠标到达页面顶端,按钮才出现的,明白了吧
⑤ js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
IE
左键是
window.event.button
=
1
右键是
window.event.button
=
2
中键是
window.event.button
=
4
没有按键动作window.event.button
=
0
Firefox
左键是
event.button
=
0
右键是
event.button
=
2
中键是
event.button
=
1
没有按键动作
event.button
=
0
Opera
7.23/7.54
鼠标左键是
window.event.button
=
1
没有按键动作
window.event.button
=
1
右键和中键无法获取
Opera
7.60/8.0
鼠标左键是
window.event.button
=
0
没有按键动作
window.event.button
=
0
右键和中键无法获取
另外:屏蔽右键的是window.event.button
=
3
************************************************************
Window.event对象代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
Window.event对象只在事件发生的过程中才有效。
Window.event的某些属性只对特定的事件有意义。比如,fromElement
和
toElement
属性只对
onmouseover
和
onmouseout
事件有意义。
如果事件触发后,鼠标移出窗口外,则返回的值为
-1
,这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
Event对象的属性有:
altKey,
button,
cancelBubble,
clientX,
clientY,
ctrlKey,
fromElement,
keyCode,
offsetX,
offsetY,
propertyName,
returnValue,
screenX,
screenY,
shiftKey,
srcElement,
srcFilter,
toElement,
type,
x,
y
下面简单的描述一下它的这些属性:
1.altKey
描述:
检查alt键的状态。
语法:
event.altKey
可能的值:
当alt键按下时,值为
TRUE
,否则为
FALSE
。只读。
2.button
描述:
检查按下的鼠标键。
语法:
event.button
可能的值:
0
没按键
;1
按左键
;2
按右键
;3
按左右键
;4
按中间键
;5
按左键和中间键
;6
按右键和中间键
;7
按所有的键
这个属性仅用于onmousedown,
onmouseup,
和
onmousemove
事件。对其他事件,不管鼠标状态如何,都返回
0(比如onclick)。
3.cancelBubble
描述:
检测是否接受上层元素的事件的控制。
语法:
event.cancelBubble[
=
cancelBubble]
可能的值:
这是一个可读写的布尔值
TRUE
不被上层原素的事件控制。
FALSE
允许被上层元素的事件控制。这是默认值。
4.clientX
描述:
返回鼠标在窗口客户区域中的X坐标。
语法:
event.clientX
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
5.clientY
描述:
返回鼠标在窗口客户区域中的Y坐标。
语法:
event.clientY
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
6.ctrlKey
描述:
检查ctrl键的状态。
语法:
event.ctrlKey
可能的值:
当ctrl键按下时,值为
TRUE
,否则为
FALSE
。只读。
7.fromElement
描述:
检测
onmouseover
和
onmouseout
事件发生时,鼠标所离开的元素。
参考18.toElement
语法:
event.fromElement
注释:
这是个只读属性。
8.keyCode
描述:检测键盘事件相对应的内码。
这个属性用于
onkeydown,
onkeyup,
和
onkeypress
事件。
语法:
event.keyCode[
=
keyCode]
可能的值:
这是个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为
0
。
9.offsetX
描述:
检查相对于触发事件的对象,鼠标位置的水平坐标
语法:
event.offsetX
10.offsetY
描述:
检查相对于触发事件的对象,鼠标位置的垂直坐标
语法:
event.offsetY
11.propertyName
描述:
设置或返回元素的变化了的属性的名称。
语法:
event.propertyName
[
=
sProperty
]
可能的值:
sProperty
是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。
注释:这个属性是可读写的。无默认值。你可以通过使用
onpropertychange
事件,得到
propertyName
的值。
12.returnValue
描述:
设置或检查从事件中返回的值
语法:
event.returnValue[
=
Boolean]
可能的值:
true
事件中的值被返回
false
源对象上事件的默认操作被取消
13.screenX
描述:
检测鼠标相对于用户屏幕的水平位置
语法:
event.screenX
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
14.screenY
描述:
检测鼠标相对于用户屏幕的垂直位置
语法:
event.screenY
注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
15.shiftKey
描述:
检查shift键的状态。
语法:
event.shiftKey
可能的值:
当shift键按下时,值为
TRUE
,否则为
FALSE
。只读。
16.srcElement
描述:
返回触发事件的元素。只读。例子见本文开头。
语法:
event.srcElement
17.srcFilter
描述:
返回触发
onfilterchange
事件的滤镜。只读。
语法:
event.srcFilter
18.toElement
描述:
检测
onmouseover
和
onmouseout
事件发生时,鼠标所进入的元素。
参考7.fromElement
语法:
event.toElement
注释:
这是个只读属性。
19.type
描述:
返回事件名。
语法:
event.type
注释:
返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click
只读。
20.
x
描述:
返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法:
event.x
注释:
如果事件触发后,鼠标移出窗口外,则返回的值为
-1
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。
21.
y
描述:
返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。
语法:
event.y
⑥ js鼠标事件有哪些
js 鼠标事件详细
常用的几个类型
onClick
HTML: 2 | 3 | 3.2 | 4
Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击
onDblClick
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 鼠标双击事件
onMouseDown
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 鼠标上的按钮被按下了
onMouseUp
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 鼠标按下后,松开时激发的事件
onMouseOver
HTML: 2 | 3 | 3.2 | 4
Browser: IE3 | N2 | O3 当鼠标移动到某对象范围的上方时触发的事件
onMouseMove
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N4 | O 鼠标移动时触发的事件
onMouseOut
HTML: 2 | 3 | 3.2 | 4
Browser: IE4 | N3 | O3 当鼠标离开某对象范围时触发的事件
若想检测鼠标左键、右键点击事件可以用
事件button 值来检测
例如
document.onMouseDown =function(ev){
var oEvent = ev||event;
alert(oEvent.button);
}
此时button= 0、1、2分别对应于 鼠标左中右
⑦ 什么用javascript让一个对象同时监听鼠标单击和鼠标双击事件
<input name="test" id="test" type="button" onmouseup="c()" value="单双击测试"/>
注意不是onclick,是内onmouseup
var count = 0;
var timer ;
function c(){
count ++;
timer = window.setTimeout(function(){
if(count==1) alert("单击容");
else alert("双击");
window.clearTimeout(timer);
count=0;
},300)
}
⑧ JS鼠标事件大全 JS鼠标事件有哪些
1、如图首先在一个文件夹下创建index.html文件。