js禁止查看源文件屏蔽Ctrl+u/s、F12、右鍵等兼容IE火狐c(diǎn)hrome
鍵盤事件
一般處理鍵盤按鍵事件我們采用這樣的方式
document.onkeydown=function (event) { //檢測(cè)按下哪個(gè)鍵,作相應(yīng)處理 };
event為鍵盤事件,對(duì)于chrome,firefox,IE(Edge),IE10,IE9均能支持function自帶的e,而ie8以下只能識(shí)別windows.event,所以一般兼容寫法為:event=event||window.event。獲取按鍵碼一般是event.keyCode,這個(gè)對(duì)各大瀏覽器都是兼容的。
document.onkeydown=function (event) { event=event||window.event; var key=event.keyCode; //檢測(cè)按下哪個(gè)鍵,作相應(yīng)處理 if(key==...){ } };
屏蔽瀏覽器默認(rèn)事件的方法大致有三種:
1)event.preventDefault()
2)event.returnValue=false;
3)return false;
firefox的特殊方式支持是指,firefox這里一個(gè)比較坑爹的地方是,firefox需增加一個(gè)延遲才能生效,不然仍然會(huì)跳出瀏覽器的保存當(dāng)前頁(yè)面窗口,如下:
document.onkeydown=function (event) { //判斷按鍵 var key=event.keyCode; if(key== 83 && e.ctrlKey){ /*延遲,兼容FF瀏覽器 */ setTimeout(function(){ alert('ctrl+s'); },1); event.preventDefault();//或者是 return false; }
而IE10,IE9,IE8以下對(duì)于event.returnValue=false的特殊方式支持是指鍵盤事件event必須為window.event時(shí)ctrl+s的默認(rèn)事件才能屏蔽,在event=event||window.event的兼容寫法中,IE8及以下的形參event是空,所以會(huì)取值為window.event,而IE10,IE9的function形參event是有效的,所以取值直接為event,因此IE10,IE9在寫法為event=event||window.event時(shí)會(huì)屏蔽ctrl+s失效。
假如要讓所有IE版本能夠屏蔽Ctrl+S,event取值只能是window.event了。由于window.event沒(méi)有方法preventDefautl,所以屏蔽默認(rèn)事件方法只能用return false;
兼容IE、firefox、chrome,屏蔽Ctrl+s的寫法為
document.onkeydown=function (e) { e=window.event||e; if(key== 83 && e.ctrlKey){ /*延遲,兼容FF瀏覽器 */ setTimeout(function(){ alert('www.qdxw.net'); },1); return false; } };
屏蔽鼠標(biāo)右鍵的寫法
window.document.oncontextmenu = function (){ alert('親,你想干嘛,不要做壞事哦'); return false; }
如果當(dāng)前頁(yè)面里含有iframe 那么iframe里的右鍵依然可用
屏蔽頁(yè)面里iframe里的右鍵寫法
document.getElementById('web').onload = function(){ window.document.getElementById('web').contentWindow.document.oncontextmenu = function(){ alert('www.qdxw.net'); return false; } }
web是iframe標(biāo)簽的ID屬性。
相關(guān)文章
JS作用域閉包、預(yù)解釋和this關(guān)鍵字綜合實(shí)例解析
這篇文章主要介紹了JS作用域閉包、預(yù)解釋和this關(guān)鍵字,結(jié)合實(shí)例形式分析了javascript作用域閉包、預(yù)解釋和this關(guān)鍵字在具體使用過(guò)程中的操作技巧與注意事項(xiàng),需要的朋友可以參考下2016-12-12String.prototype實(shí)現(xiàn)的一些javascript函數(shù)介紹
這篇文章主要是對(duì)String.prototype實(shí)現(xiàn)的一些javascript函數(shù)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11JavaScript如何監(jiān)測(cè)數(shù)組的變化
最近在造輪子的時(shí)候遇到了這么一個(gè)問(wèn)題,那就是數(shù)組在調(diào)用內(nèi)部方法的時(shí)候怎么才可以監(jiān)聽到數(shù)組發(fā)生了變化,這篇文章主要給大家介紹了關(guān)于JavaScript如何監(jiān)測(cè)數(shù)組變化的相關(guān)資料,需要的朋友可以參考下2021-07-07微信小程序在ios下Echarts圖表不能滑動(dòng)的問(wèn)題解決
這篇文章主要介紹了微信小程序在ios下Echarts圖表不能滑動(dòng)的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來(lái)一起學(xué)習(xí)下吧2019-07-07JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法
這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)tab欄切換的幾種常用方法,在Web開發(fā)中Tab切換是一個(gè)常見的功能,它允許用戶在不同的頁(yè)面部分之間進(jìn)行切換,需要的朋友可以參考下2023-12-12js實(shí)現(xiàn)GIF動(dòng)圖分解成多幀圖片上傳
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)GIF動(dòng)圖分解成多幀圖片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10用javascript動(dòng)態(tài)注釋掉HTML代碼
用javascript動(dòng)態(tài)注釋掉HTML代碼...2006-09-09