導航:首頁 > 編程語言 > js判斷瀏覽器支持哪些事件

js判斷瀏覽器支持哪些事件

發布時間:2023-03-30 12:56:04

A. 如何用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('刷新操作');
}
};
}

B. JS捕獲關閉瀏覽器事件之chrome瀏覽器真支持onbeforeunload事件嗎

chrome瀏覽器真的支持onbeforeunload事件:

  1. chrome瀏覽器版本52.0.2743;

  2. 測試代碼如下:

  3. <html>
    <head>
    <title>onbeforeunload</title>
    </head>
    <bodyonbeforeunload="close();">
    <divid="div1">dfdfdf</div>
    </body>
    </html>

    <scripttype='text/javascript'>
    //alert(2);
    functionclose(){
    vardiv1=document.getElementById('div1');
    div1.innerHTML='';
    }
    </script>

    4.運行代碼,按 F5 刷新網頁的一瞬間可以看到裡面的文字變成 1111... 了,證明瀏覽器已經調用了 onbeforeunload事件;


    總結:雖然瀏覽器調用onbeforeunload事件,但是無法阻止瀏覽器關閉

C. js判斷是否是IE瀏覽器的幾種方法

前幾天在網上看到一個技術牛人寫的世界上判斷是否IE瀏覽器之最短的js代碼,如下:<scriptif(!+[1,])alert(這是ie瀏覽器); else alert(這不是ie瀏覽器); </script 其實有很多判灶余悶斷的方法,大都是根據毀搭瀏覽器的特性來的。 比如庫prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是根據ie支持window.attachEvent添加偵聽事件,非ie用window.addEventListener添加偵聽事件來判斷的。navigator.userAgent.indexOf('Opera') === -1是因為opara瀏覽器能偽裝成ie.如果!!(window.attachEvent )為真,就是ie;反之,如果!window.addEventListener為真,也可以判斷為ie. Ext使用的是!1[0],他利用IE無法使用數組下標訪問字元串的特性來判斷。在ie8下好像有問題。 在!+[1,]還未被發現前,判斷ie最短的表達式是 !+\v1.它利用的是ie不支持垂直製表符的特性。 以前還有一個常用方法是document.all,由於opera瀏覽器能偽裝成ie。可以這樣寫:!!(document.all && navigator.userAgent.indexOf('Opera') === -1). 還有很多,先記這幾條,便於工作時查閱。 1.+[1,] 2.!+\v1 3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1) 5.!!(document.all && navigator.userAgent.indexOf('Opera'隱彎) === -1)

D. 怎樣用JS判斷各瀏覽器調用各自的css文件

當然可以了,
在頁面里直接這樣寫就行
<!--[if IE]><link type="text/css" rel="stylesheet" href="style_ie.css" /><![endif]-->

具體的文章如下:
條件注釋只能在windows Internet Explorer(以下簡稱IE)下使用,因此我們可以通過條件注釋來為IE添加特別的指令。

通俗點,條件注釋就是一些if判斷,但這些判斷不是在腳本里執行的,而是直接在html代碼里執行的,比如:

<!--[if IE]>
這里是正常的html代碼
<![endif]-->

1,條件注釋的基本結構和HTML的注釋(<!-- -->)是一樣的。因此IE以外的瀏覽器將會把它們看作是普通的注釋而完全忽略它們。
2,IE將會根據if條件來判斷是否如解析普通的頁面內容一樣解析條件注釋里的內容。
3,條件注釋使用的是HTML的注釋結構,因此他們只能使用在HTML文件里,而不能在CSS文件中使用。

可使用如下代碼檢測當前IE瀏覽器的版本(注意:在非IE瀏覽器中是看不到效果的)

<!--[if IE]>
<h1>您正在使用IE瀏覽器</h1>
<!--[if IE 5]>
<h2>版本 5</h2>
<![endif]-->
<!--[if IE 5.0]>
<h2>版本 5.0</h2>
<![endif]-->
<!--[if IE 5.5]>
<h2>版本 5.5</h2>
<![endif]-->
<!--[if IE 6]>
<h2>版本 6</h2>
<![endif]-->
<!--[if IE 7]>
<h2>版本 7</h2>
<![endif]-->
<![endif]-->

那如果當前的瀏覽器是IE,但版本比IE5還低,該怎麼辦呢,可以使用<!--[if ls IE 5]>,當然,根據條件注釋只能在IE5+的環境之下,所以<!--[if ls IE 5]>根本不會被執行。

lte:就是Less than or equal to的簡寫,也就是小於或等於的意思。

lt :就是Less than的簡寫,也就是小於的意思。

gte:就是Greater than or equal to的簡寫,也就是大於或等於的意思。

gt :就是Greater than的簡寫,也就是大於的意思。

! :就是不等於的意思,跟javascript里的不等於判斷符相同

Conditional comments屬於CSS hack? 條件判斷屬於CSS hack嗎?

嚴格地說是屬於CSS hack。因為就好象其他真正的css hack一樣,它使得我們可以給一些瀏覽器賦予特殊的樣式,再則它不依賴於某個瀏覽器的BUG來控制另外一個瀏覽器(的樣式)。除此之外,條件判斷還能用來做一些超出CSS HACK范圍的事情(雖然這種情況很少發生)。

因為條件判斷不依賴於某個瀏覽器的hack,而是一個經過深思熟慮的特色功能,所以我相信它是可以被放心地使用的。當然,其他瀏覽器也有可能支持條件判斷(到目前為止還沒有),但是看起來,他們應該不會使用如<!--[if IE]>這樣的語法。

應該如何應用條件注釋

本文一開始就說明了,因為IE各版本的瀏覽器對我們製作的WEB標準的頁面解釋不一樣,具體就是對CSS的解釋不同,我們為了兼容這些,可運用條件注釋來各自定義,最終達到兼容的目的。比如:

<!-- 默認先調用css.css樣式表 -->
<link rel="stylesheet" type="text/css" href="css.css" />

<!--[if IE 7]>
<!-- 如果IE瀏覽器版是7,調用ie7.css樣式表 -->
<link rel="stylesheet" type="text/css" href="ie7.css" />
<![endif]-->

<!--[if lte IE 6]>
<!-- 如果IE瀏覽器版本小於等於6,調用ie.css樣式表 -->
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->

這其中就區分了IE7和IE6向下的瀏覽器對CSS的執行,達到兼容的目的。同時,首行默認的css.css還能與其他非IE瀏覽器實現兼容。

注意:默認的CSS樣式應該位於HTML文檔的首行,進行條件注釋判斷的所有內容必須位於該默認樣式之後。

比如如下代碼,在IE瀏覽器下執行顯示為紅色,而在非IE瀏覽器下顯示為黑色。如果把條件注釋判斷放在首行,則不能實現。該例題很能說明網頁對IE瀏覽器和非IE瀏覽器間的兼容性問題解決。

<style type="text/css">
body{
background-color: #000;
}
</style>
<!--[if IE]>
<style type="text/css">
body{
background-color: #F00;
}
</style>
<![endif]-->

同時,有人會試圖使用<!--[if !IE]>來定義非IE瀏覽器下的狀況,但注意:條件注釋只有在IE瀏覽器下才能執行,這個代碼在非IE瀏覽下非單不是執行該條件下的定義,而是當做注釋視而不見。

正常就是默認的樣式,對IE瀏覽器需要特殊處理的,才進行條件注釋。

E. js ie非ie瀏覽器的幾種判斷方法小結

最近在 司徒正美 js 全世界最短的IE瀏覽器判斷代碼 一文,看到只有6byte的判斷ie與非ie的方法。其代碼如下: <script> if(!+[1,])alert("這是ie瀏覽器"); else alert("這不是ie瀏覽器");</script> [Ctrl+A 全選 注: 如需引入外部Js需刷新才能執行]其實有很多判斷的方法,大都是根據瀏覽器的特性來的。 比如庫prototype的方法是:!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。就是根據ie支持window.attachEvent添加偵聽事件,非ie用window.addEventListener添加偵聽事件來判斷的。navigator.userAgent.indexOf('Opera') === -1是因為opara瀏覽器能偽裝成ie.如果!!(window.attachEvent )為真,就是ie;反之,如果!window.addEventListener為真,也可以判斷為ie. Ext使用的是!"1"[0],他利用IE無法使用數組下標訪問字元串的特性來判斷。在ie8下好像有問題。 在!+[1,]還未被發現前,判斷ie最短的表達式是 !+"\v1".它利用的是ie不支持垂直製表符的特性。 以前還有一個常用方法是document.all,由於opera瀏覽器能偽裝成ie。可以這樣寫:!!(document.all && navigator.userAgent.indexOf('Opera') === -1). 還有很多,先記這幾條,便於工作時查閱。 1.+[1,] 2.!+"\v1"

F. JS捕獲關閉瀏覽器事件之chrome瀏覽器真支持onbeforeunload事件嗎

JS捕獲關閉瀏覽爛悶器事件之onbeforeunload在chrome中是不支持的。
1、window.onbeforeunload()函數主要是用於捕獲關閉瀏覽器事件(飢汪彎包括刷新);
2、window.onunload()函數主要是執行關閉游覽器後的動作;陵臘
因為:Chrome在調用 document.write、document.open、document.close 方法以及 "javascipt:" 偽協議時,不會觸發 onbeforeunload 事件。

G. 如何判斷瀏覽器是否支持javascript

1
我們新來建立一個.html空文件源,代碼如下寫入。保存
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
<script type="application/javascript" defer="defer" src="1.js"></script>
</head>
<body>
<noscript>
<p>
需要開啟JAVA
</p>
</noscript>
</body>
</html>

2
再新建一個新的js空文件,寫入如下代碼。之後保存。
// JavaScript Document
alert("1111111111");

3
當所有的文件都建立好後,我們來驗證寫是否有效。
上面的js代碼,就是讓瀏覽器顯示一個信息框。信息框的顯示的內容是1111111111。
如果我們的代碼無的話,那麼就應該執行了javascript腳本。
這里我們先把測試瀏覽器全部禁用js,因為現在瀏覽器都已經支持了javascript.
我們需要先禁用,至於現在瀏覽器為什麼都已經支持了javascript。請大家自己翻閱相關的javascript歷史,來查看。
首先是IE瀏覽器。禁用js

H. Javascript中如何檢測一個事件在該瀏覽器中是否存在運行

可以用變數友敬咐判斷,在事件方法執行的開稿核始,設置變數如window.a=1,方法執行完之後window.a=0,這樣在這之間有其他事件好純發生可以通過a得知判斷;
如果要實現阻塞,可用while函數或加setInternal方法循環判斷a的值。

I. 如何用js來判斷 執行了微信右上角的在瀏覽器中打開事件

通過userAgent判斷有無MicroMessenger欄位

J. 怎樣用JS准確的判斷瀏覽器刷新事件

<局則皮scriptlanguage="javascript">桐差
window.onbeforeunload=function(){
varn=window.event.screenX-window.screenLeft;
varb=n>document.documentElement.scrollWidth-20;
if(b&&盯型window.event.clientY<0||window.event.altKey){
alert("這是一個關閉操作而非刷新");
window.event.returnValue="";//此處放你想要操作的代碼
}else{
alert("這是一個刷新操作而非關閉");
}
}
</script>

閱讀全文

與js判斷瀏覽器支持哪些事件相關的資料

熱點內容
ios代碼怎麼實現內存清理 瀏覽:952
允熙雪作品集 瀏覽:287
被總裁打手心 瀏覽:565
鬼片免費推薦 瀏覽:601
文件名後面有3怎麼去掉 瀏覽:658
linuxfstab掛載 瀏覽:750
mac版本qq怎麼改密碼錯誤 瀏覽:553
define組合一般用於頭文件中 瀏覽:165
電影里有個叫大衛的男主角 瀏覽:584
三陰僵屍電影的別名 瀏覽:703
DP 電影 瀏覽:979
有部電影講8個人分娩鏡頭 瀏覽:129
ps4文件夾怎麼加封面 瀏覽:444
網站開發怎麼選擇 瀏覽:446
魅族root升級 瀏覽:46
送快遞電影賣內衣 瀏覽:691
電信網路怎麼繳費 瀏覽:423
杜文澤電影日本 瀏覽:312
看片群qq 瀏覽:516
法國愛情電影完整免費版 瀏覽:421

友情鏈接