js禁止查看源文件屏蔽Ctrl+u/s、F12、右鍵等兼容IE火狐chrome
鍵盤事件
一般處理鍵盤按鍵事件我們采用這樣的方式
document.onkeydown=function (event) { //檢測按下哪個鍵,作相應(yīng)處理 };
event為鍵盤事件,對于chrome,firefox,IE(Edge),IE10,IE9均能支持function自帶的e,而ie8以下只能識別windows.event,所以一般兼容寫法為:event=event||window.event。獲取按鍵碼一般是event.keyCode,這個對各大瀏覽器都是兼容的。
document.onkeydown=function (event) { event=event||window.event; var key=event.keyCode; //檢測按下哪個鍵,作相應(yīng)處理 if(key==...){ } };
屏蔽瀏覽器默認(rèn)事件的方法大致有三種:
1)event.preventDefault()
2)event.returnValue=false;
3)return false;
firefox的特殊方式支持是指,firefox這里一個比較坑爹的地方是,firefox需增加一個延遲才能生效,不然仍然會跳出瀏覽器的保存當(dāng)前頁面窗口,如下:
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以下對于event.returnValue=false的特殊方式支持是指鍵盤事件event必須為window.event時ctrl+s的默認(rèn)事件才能屏蔽,在event=event||window.event的兼容寫法中,IE8及以下的形參event是空,所以會取值為window.event,而IE10,IE9的function形參event是有效的,所以取值直接為event,因此IE10,IE9在寫法為event=event||window.event時會屏蔽ctrl+s失效。
假如要讓所有IE版本能夠屏蔽Ctrl+S,event取值只能是window.event了。由于window.event沒有方法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)前頁面里含有iframe 那么iframe里的右鍵依然可用
屏蔽頁面里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)鍵字綜合實例解析
這篇文章主要介紹了JS作用域閉包、預(yù)解釋和this關(guān)鍵字,結(jié)合實例形式分析了javascript作用域閉包、預(yù)解釋和this關(guān)鍵字在具體使用過程中的操作技巧與注意事項,需要的朋友可以參考下2016-12-12String.prototype實現(xiàn)的一些javascript函數(shù)介紹
這篇文章主要是對String.prototype實現(xiàn)的一些javascript函數(shù)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11JavaScript如何監(jiān)測數(shù)組的變化
最近在造輪子的時候遇到了這么一個問題,那就是數(shù)組在調(diào)用內(nèi)部方法的時候怎么才可以監(jiān)聽到數(shù)組發(fā)生了變化,這篇文章主要給大家介紹了關(guān)于JavaScript如何監(jiān)測數(shù)組變化的相關(guān)資料,需要的朋友可以參考下2021-07-07JavaScript實現(xiàn)tab欄切換的幾種常用方法
這篇文章主要給大家介紹了關(guān)于JavaScript實現(xiàn)tab欄切換的幾種常用方法,在Web開發(fā)中Tab切換是一個常見的功能,它允許用戶在不同的頁面部分之間進(jìn)行切換,需要的朋友可以參考下2023-12-12