欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

禁用頁面部分JavaScript不是全部而是部分

 更新時間:2014年09月03日 16:09:47   投稿:whsnow  
全部限制那是很簡單的事,直接把<script>腳本塊過濾掉就行了,但是部分限制又是如何做到的呢,下面我們一起來看看

本文討論的方法本人并沒有在實際項目中應(yīng)用過,因為我還沒有遇到有這樣需要的項目,但試驗發(fā)現(xiàn)可行。

一、我的想法來源

JavaScipt是好東西,它的出現(xiàn)讓網(wǎng)頁頁面表現(xiàn)形式更活潑,當然好處絕不僅僅就這些,而近些年來紅紅火火的AJAX應(yīng)用更讓人開始重視JavaScipt小語言(好些程序牛人不把它看作語言,最多是腳本稱號,甚至看不起搞腳本的人)的應(yīng)用?,F(xiàn)在好些博客官網(wǎng)開放腳本權(quán)限,允許用戶自定義腳本來豐富自己的空間,特別像一些技術(shù)類專業(yè)博客,提供了相當寬松的開發(fā)環(huán)境。但是我們也發(fā)現(xiàn)好些博客會對某些腳本方法作限制。注意,我這里說的是部分限制,如果是全部限制那是很簡單的事,直接把<script>腳本塊過濾掉就行了,但是部分限制又是如何做到的呢?

因為我在之前的項目中沒有遇到這樣的問題,所以也沒有作過多的深入研究,一開始只是憑感覺想到用“替換”方法。很顯然這樣的方法行不通,因為可能會出錯。比如我要禁用alert方法,現(xiàn)有下面那段代碼:
window.alert('Some message');

現(xiàn)在要讓上面那段代碼失效,只要讓alert變一下就行了,比如把它全部改成大寫ALERT,這樣又肯定會報腳本錯誤的,但還是可以用try{}catch{}把ALERT包含起來,但這對禁用語包的識別又是一大難題,而且還會有這樣的錯誤:把document.write('alert some message');中的alert也替換了。

后來我想到了方法重寫,重寫要禁用的方法,并讓它什么也不做,結(jié)果證明真的可行,但并不知道是不是一個科學的方法,我拿出來與大家共同討論一下。

二、具體實現(xiàn)

先看下面的代碼,實現(xiàn)了對“alert”,“write”兩個方法的禁用:

window.alert=function(){}
document.write=function(){}

window.alert('Alert some message');
document.write('Write some message');

看起來真的很簡單,在實際應(yīng)用的時候,把前面兩行單獨抽出來存在一個外部JS文件中,并在需要過濾JavaScript方法的頁面先加載這個JS文件(也可以在用戶編輯內(nèi)容塊的前一行加載這個腳本,這樣之前的HTML塊中我們管理員或網(wǎng)頁制作者還是可以用將要被禁用的方法),這樣之后調(diào)用被禁用的方法是不起作用的了。

注意:最后提醒一下,還要禁用部分DOM操作方法,比如remove()方法,因為用戶可以用DOM的操作方法移除你一開始加載的那個JS文件。

相關(guān)文章

  • JS/Jquery判斷對象為空的方法

    JS/Jquery判斷對象為空的方法

    本文給大家分享的是JS/Jquery判斷對象是不是空對象的方法,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • Fundebug支持監(jiān)控微信小程序HTTP請求錯誤的方法

    Fundebug支持監(jiān)控微信小程序HTTP請求錯誤的方法

    這篇文章主要介紹了Fundebug支持監(jiān)控微信小程序HTTP請求錯誤的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • JavaScript原型鏈及常見的繼承方法

    JavaScript原型鏈及常見的繼承方法

    這篇文章主要介紹了JavaScript原型鏈及常見的繼承方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的的參考價值,需要的朋友可以參考一下
    2022-07-07
  • layer彈出層中H5播放器全屏出錯的解決方法

    layer彈出層中H5播放器全屏出錯的解決方法

    本文主要介紹了layer彈出層中H5播放器全屏出錯解決&屬性poster底圖占滿video的方法,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript選取(picking)和反選(rejecting)對象的屬性方法

    JavaScript選取(picking)和反選(rejecting)對象的屬性方法

    這篇文章主要介紹了JavaScript選取(picking)和反選(rejecting)對象的屬性方法的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • JS代碼屏蔽F12,右鍵,粘貼,復制,剪切,選中,操作實例

    JS代碼屏蔽F12,右鍵,粘貼,復制,剪切,選中,操作實例

    在本篇文章里小編給大家分享的是關(guān)于利用JS代碼屏蔽F12,右鍵,粘貼,復制,剪切,選中,操作,需要的朋友們學習下。
    2019-09-09
  • js詞法作用域與this實例詳解

    js詞法作用域與this實例詳解

    作用域值一個變量的作用餓范圍,下面這篇文章主要給大家介紹了關(guān)于js詞法作用域與this的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • js實現(xiàn)YouKu的漂亮搜索框效果

    js實現(xiàn)YouKu的漂亮搜索框效果

    這篇文章主要介紹了js實現(xiàn)YouKu的漂亮搜索框效果的方法,通過javascript結(jié)合鼠標事件與頁面樣式實現(xiàn)漂亮的搜索框效果,非常具有實用價值,需要的朋友可以參考下
    2015-08-08
  • JS計算距當前時間的時間差實例

    JS計算距當前時間的時間差實例

    下面小編就為大家分享一篇JS計算距當前時間的時間差實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • javascript 線性漸變二

    javascript 線性漸變二

    上部分我們逐一分析了各瀏覽器的可行方法,這部分將搞鼓出一個統(tǒng)一的類來實現(xiàn)跨瀏覽器的線性漸變。
    2009-10-10

最新評論