天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

encode腳本和normal腳本混用的問題與解決方法

半年前第一次做腳本編碼的時候,由于沒有什么使用經驗,于是在51js上詢問了一下encode腳本和normal腳本混用是否有什么問題呢?結果沒有得到任何有建設性的意見,這也至少說明了兩個問題,一是沒有人在意,二是就沒有什么問題嘛。當然我更樂意于接受后一種結果,就開始了encode腳本和normal腳本的混合使用。

    在這樣的理解下做了很多的腳本,似乎也真的沒有出現過什么問題,于是更加篤信自己當初的判斷。結果又一次被IE暗算了,encode后的腳本和normal的腳本混和使用不是沒有問題,也不是都有問題,只是在特定的條件下會出問題,真是暈死。看下面這個示例: 

復制代碼 代碼如下:
<html> 
<head> 
    <title>JScript Encode Research</title> 
    <meta name="author" content="birdshome@cnblogs" /> 
</head> 
<body> 
    <script language="jscript.encode" type="text/jscript.encode"> 
        #@~^8gAAAA==~,P~,P,Pr(L^Ycw.WDWOza+Rtn/klo~xP6E    mOkGUv#@#@&,~P,P~~,    @#@&~,P~P,~,P~,P,lVDDcB}4%+1Y 2MWYKOXa+Rtnd/moBbi@#@&,P~P,~P,8I@#@&PP~~,P~P@#@&,P~,P,PP}4NnmDR/+k/CLP',WE    mYbGU`*@#@&P~P~~,P~    @#@&P,P~~,PP~~,P~l^nMYcEr(L+1Yc/+k/CoBbI@#@&P,~P,PP,NIGjkAAA==^#~@ 
    </script> 
    <script language="jscript.encode" type="text/jscript.encode"> 
        #@~^FgEAAA==~,P~,P,P0!x1OkKx~2mG[`#,`8@#@&@#@&~~P,P,P~2U^KNnRa.WDWOza+R/nk/Co~{PW!x1YkKxvb@#@&P~P,P~~,    @#@&~P,PP,~~P,P,.kOndkU+vv2    mG[Rw.GDWOXancHnk/mo+E#p@#@&,P~P,P~~)i@#@&@#@&,PP,~~P,2    mGNn t+d/mL+,'~W!xmOrKxc#@#@&,P~,P,PPP@#@&~P,P~P,P~~,PMrYSk    ncBAx1W[+ //dlTnB*i@#@&,PP~~,P~8p~,V0MAAA==^#~@ 
    </script> 
    <script language="jscript" type="text/jscript"> 
        function Normal() {}  
        Normal.prototype.Message = function() 
        { 
            WriteLine('Normal.prototype.Message'); 
        };  
        Normal.Message = function() 
        { 
            WriteLine('Normal.Message'); 
        };  
    </script> 
    <script language="jscript" type="text/jscript"> 
        var msg = '.prototype.Message" Fail.<br>'; 
        function WriteLine(msg) { document.write(msg + '<br><br>'); } 

        var o = new Object(); 
        try { o.Message(); } 
        catch(e) { WriteLine('Call "Object' + msg + e.message); } 
        try { Object.Message(); } 
        catch(e) { WriteLine('Call "Object.Message" Fail. <br>' + e.message); } 

        var e = new Encode(); 
        try { e.Message(); } 
        catch(e) { WriteLine('Call "Encode' + msg + e.message); } 
        Encode.Message(); 

        var n = new Normal(); 
        try { n.Message(); } 
        catch(e) { WriteLine('Call "Normal' + msg + e.message); } 
        Normal.Message(); 
    </script> 
</body> 
</html> 

    把上面的代碼存為一個*.htm文件,打開后得到結果為: 

  Call "Object.prototype.Message" Fail.
  Object doesn't support this property or method
  Call "Object.Message" Fail. 
  Object doesn't support this property or method
  Encode.prototype.Message
  Encode.Message
  Normal.prototype.Message
  Normal.Message
    上面那兩段jscript.encode的代碼很簡單,就是: Object.prototype.Message = function()
{
    alert('Object.prototype.Message');
};
Object.Message = function()
{
    alert('Object.Message');
}; 
function Encode() {}
Encode.prototype.Message = function()
{
    WriteLine('Encode.prototype.Message');
};
Encode.Message = function()
{
    WriteLine('Encode.Message');
};  
    如果我們把上面兩段代碼替換那個html中的兩段jscript.encode的代碼,后面的運行將不會出任何異常,會得到這樣的輸出:   Object.prototype.Message
  Object.Message
  ...
    上面這些代碼實例的試驗,已經詳細的說明了encode腳本代碼的問題。就是,不能在非編碼腳本中,引用編碼腳本中導入到JScript內置對象上的原型(prototype)方法和靜態方法。上面示例中的Object就是JScript的一個內置對象,我們分別導入了一個prototpye方法和靜態方法Message()。而對于非內置對象Encode,我們在已編碼代碼中導入的prototype和static方法,都可以在非編碼代碼中正常的訪問。

    那么怎么訪問內置對象的導入方法呢?其實解決起來也不復雜,只是比較繁瑣。我們需要使用一些wrapper方法,把他們和被編碼的代碼放在一起,就可以在非編碼代碼中訪問了,比如上面的Object的導入,我們可以這樣包裝它: 

Object.prototype.Message = function()
{
    WriteLine('Object.prototype.Message');
};
Object.Message = function()
{
    WriteLine('Object.Message');
};
var obj = new Object();

function ObjectPrototypeMessage()
{
    obj.Message();
}
function ObjectMessage()
{
    Object.Message();
}
    這時,我們就可以通過ObjectPrototypeMessage和ObjectMessage這樣的wrapper方法訪問到已編碼代碼中內置對象的導入方法了。

JavaScript技術encode腳本和normal腳本混用的問題與解決方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日日射日日操 | 香蕉免费高清完整 | 高清撒尿hdtube撒尿 | 国语自产二区高清国语自产拍 | 99re6热这里在线精品视频 | 九九热这里都是精品 | HEYZO无码中文字幕人妻 | 国产午夜永久福利视频在线观看 | 国产亚洲精品久久久久久入口 | aaaaaaa一级毛片 | 国产午夜一级鲁丝片 | 国产在线一区二区三区四区 | 538视频这里只有精品 | 好吊妞在线成人免费 | 武侠古典久久亚洲精品 | 97在线视频网站 | 国产成人99久久亚洲综合精品 | 国产精品久久久久影院色 | 校花娇喘呻吟校长陈若雪视频 | 国产成人免费a在线视频app | 亚洲精品第一综合99久久 | 吉吉影音先锋av资源网 | 黑人娇小BBW | 99久视频只有精品2019 | 破苞流血哭泣 magnet | 中文字幕在线视频网站 | 日本一区二区三区在线观看网站 | YY6080A旧里番在线观看 | 男人的天堂MV在线视频免费观看 | 成片免费观看视频大全 | 免费毛片网站在线观看 | 中文字幕免费视频精品一 | 国产婷婷综合在线视频中文 | 毛片亚洲毛片亚洲毛片 | 亚洲国产欧美国产综合在线 | 善良的小峓子2在钱免费中文字 | 国语自产拍在线视频普通话 | xxx在线播放| 精品国产原创在线观看视频 | 乡土女性网动态图解 | bbw极度另类孕妇 |