㈠ 如何用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無效...