㈠ 如何用js监听浏览器页面的关闭/刷新事件
首先判断浏览器的抄类型,简便可用navigator.userAgent()获取浏览器的字符串,与浏览器类型做查找即可。
目前对Chrome和firfox区分关闭和刷新成功。
浏览器为firfox时flag为false,Chrome为true。
window.onload(){
window.onunload = function() {
if(flag){
console.log('关闭操作');
}
else {
console.log('刷新操作');
}
};
window.onbeforeunload = function () {
if(!flag){
console.log('关闭操作');
}
else{
console.log('刷新操作');
}
};
}
㈡ JS如何实现方法监听
监听方法在中的实现如下:
function addEventListener(string eventFlag, function eventFunc, [bool useCapture=false])
eventFlag : 事件名称,如click、mouseover…
eventFunc: 绑定到事件中执行的动作
useCapture: 指定是否绑定在捕获阶段,true为是,false为否,默认为true
在事件监听流中可以使用event.stopPropagation()来阻止事件继续往下流
IE中使用自有的attachEvent函数绑定时间,函数定义如下:
function attachEvent(string eventFlag, function eventFunc)
eventFlag: 事件名称,但要加上on,如onclick、onmouseover…
eventFunc: 绑定到事件中执行的动作
在事件监听流中可以使用window.event.cacenlBubble=false来阻止事件继续往下流
总结:addEventListener(string eventFlag, function eventFunc, [bool useCapture=false]),针对ff,chrome,safari浏览器,false指冒泡阶段,默认为true,指捕获阶段。不过一般我们都用false。
attachEvent(string eventFlag, function eventFunc),针对ie系列、还有opera浏览器,少了事件处理机制的参数,只指定事件类型(别忘了on)和触发哪个函数。
㈢ js 怎么监听到页面关闭或页面跳转事件
js 怎么监听到页面关闭或页面跳转事件,以下介绍方法:
//在页面关闭或者跳转的时候专调用属
window.onbeforeunload = function (e) {
return e.returnValue = '确认关闭?';
}
window.onunload = function () {
//这个执行完onbeforeunload 会调用该function,
//alert()是不会有弹出的。
}
调用上面的代码,用谷歌浏览器关闭浏览页面或者跳转页面都会弹出下面页面询问。
注意:刷新的时候也会弹出询问,这监控也把刷新当成重新打开页面相当跳转。
㈣ js 怎么监听到页面关闭或页面跳转事件
给个思路,不知道是否可行
在页面上做一个ajax,定期访问服务器,当在指定时间内回不能接收到页面的ajax心跳,认为答浏览器关闭了
页面跳转的监听,全部使用自定定义的js函数,好象是window.location = url,url是你要跳转的页面,这样执行到这个函数时,你就知道用户要跳转页面,然后在这个函数里做操作
㈤ cocos点击触发延迟事件
cocos点击触发延迟事件监听机制应该是所有游戏都必不可少的内容。不管是按钮的点击还是物体的拖动,都少不了事件的监听与分发。
主要的功能还是通过节点的on/once函数,对系统事件(如触摸、点击)进行监听,随后触发对应的游戏逻辑。同时,也支持用户发射/监听自定义的事件,这方面可以看一下官方文档监听和发射事件。
㈥ 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控制台,即可解决这个问题,亲测好用
㈦ js 监听浏览器的返回按钮事件在安卓和ios的坑
这是ajax的一个经典问题,很多框架都提供了解决方案,重点是模拟浏览器的前进后退。
对于IE,可以用一个隐藏框架,对框架内容的导航会使得前进后退按钮被触发。
对以FF,可以用Hash,即改变http://www.url.com/#abc井号后面的部分,前进后退按钮同样被触发。
这样就能既让浏览器前进后退按钮被触发,同时又不离开本页面。具体方法如下:
1.resize事件 (window).resize(function() { var width = (this).width(); var height = (this).height(); });
2.js条用这个方法 function closewindow{ history.go(-1); }
3.<input type="button" value="后退" onClick="history.back();"> 或 <input type="button" value="后退" onClick="history.go(-1);">
4.window.location.replace Location对象的replace()方法将用指定的URL替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新的项,因此,就不能使用IE的后退按钮来返回原始文档了。 2.window.open(FF无效...