最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2007年03月08日 00:00:00   作者:  
半年前第一次做腳本編碼的時(shí)候,由于沒有什么使用經(jīng)驗(yàn),于是在51js上詢問了一下encode腳本和normal腳本混用是否有什么問題呢?結(jié)果沒有得到任何有建設(shè)性的意見,這也至少說明了兩個(gè)問題,一是沒有人在意,二是就沒有什么問題嘛。當(dāng)然我更樂意于接受后一種結(jié)果,就開始了encode腳本和normal腳本的混合使用。

    在這樣的理解下做了很多的腳本,似乎也真的沒有出現(xiàn)過什么問題,于是更加篤信自己當(dāng)初的判斷。結(jié)果又一次被IE暗算了,encode后的腳本和normal的腳本混和使用不是沒有問題,也不是都有問題,只是在特定的條件下會(huì)出問題,真是暈死??聪旅孢@個(gè)示例: 

復(fù)制代碼 代碼如下:

<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> 

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

  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的代碼很簡(jiǎn)單,就是: 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');
};  
    如果我們把上面兩段代碼替換那個(gè)html中的兩段jscript.encode的代碼,后面的運(yùn)行將不會(huì)出任何異常,會(huì)得到這樣的輸出:   Object.prototype.Message
  Object.Message
  ...
    上面這些代碼實(shí)例的試驗(yàn),已經(jīng)詳細(xì)的說明了encode腳本代碼的問題。就是,不能在非編碼腳本中,引用編碼腳本中導(dǎo)入到JScript內(nèi)置對(duì)象上的原型(prototype)方法和靜態(tài)方法。上面示例中的Object就是JScript的一個(gè)內(nèi)置對(duì)象,我們分別導(dǎo)入了一個(gè)prototpye方法和靜態(tài)方法Message()。而對(duì)于非內(nèi)置對(duì)象Encode,我們?cè)谝丫幋a代碼中導(dǎo)入的prototype和static方法,都可以在非編碼代碼中正常的訪問。

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

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();
}
    這時(shí),我們就可以通過ObjectPrototypeMessage和ObjectMessage這樣的wrapper方法訪問到已編碼代碼中內(nèi)置對(duì)象的導(dǎo)入方法了。

相關(guān)文章

  • 微信APP生命周期及頁(yè)面生命周期示例詳解

    微信APP生命周期及頁(yè)面生命周期示例詳解

    這篇文章主要為大家介紹了微信APP生命周期及頁(yè)面生命周期當(dāng)然示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • 微信小程序傳值(傳遞數(shù)據(jù))的一些方法匯總

    微信小程序傳值(傳遞數(shù)據(jù))的一些方法匯總

    在微信小程序的開發(fā)中,我們會(huì)經(jīng)常遇到頁(yè)面間數(shù)據(jù)傳遞或者相互影響的問題,下面這篇文章主要給大家介紹了關(guān)于微信小程序傳值(傳遞數(shù)據(jù))的一些方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 重寫JS setTimeout 方法 JavaScript Hook 劫持setTimeout

    重寫JS setTimeout 方法 JavaScript Hook 

    想要重寫  setTimeout  方法,發(fā)現(xiàn)有動(dòng)態(tài)引入的js,需要改成自己的js,以下教教大家這個(gè)需求,防止網(wǎng)站被劫持
    2023-07-07
  • js拖拽的原型聲明和用法總結(jié)

    js拖拽的原型聲明和用法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了js拖拽的原型聲明和用法總結(jié),感興趣的朋友可以參考一下
    2016-04-04
  • JS實(shí)現(xiàn)瀏覽器點(diǎn)擊下載圖片功能案例分析【親測(cè)有效】

    JS實(shí)現(xiàn)瀏覽器點(diǎn)擊下載圖片功能案例分析【親測(cè)有效】

    這篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器點(diǎn)擊下載圖片功能,對(duì)比分析了同源與不同源兩種解決方案,并以實(shí)際案例形式分析了不同源情況下針對(duì)文件點(diǎn)擊下載的具體實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-04-04
  • Js+php實(shí)現(xiàn)異步拖拽上傳文件

    Js+php實(shí)現(xiàn)異步拖拽上傳文件

    本文給大家分享的是使用php結(jié)合js實(shí)現(xiàn)異步拖拽上傳文件的代碼,及示例,有需要的小伙伴可以參考下。
    2015-06-06
  • js獲取標(biāo)簽元素data-*屬性值的4種方法

    js獲取標(biāo)簽元素data-*屬性值的4種方法

    這篇文章主要分享了js獲取標(biāo)簽元素data-*屬性值的4種方法,標(biāo)簽上有兩個(gè)屬性??data-id????和???data-user-name??,?需要通過js去獲取,下面文章具體介紹需要的小伙伴可以參考一下
    2022-06-06
  • 微信小程序?qū)崿F(xiàn)列表項(xiàng)左滑刪除效果

    微信小程序?qū)崿F(xiàn)列表項(xiàng)左滑刪除效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)列表項(xiàng)左滑刪除效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 淺談tudou土豆網(wǎng)首頁(yè)圖片延遲加載的效果

    淺談tudou土豆網(wǎng)首頁(yè)圖片延遲加載的效果

    經(jīng)常上tudou網(wǎng),發(fā)現(xiàn)tudou首頁(yè)加載圖片的功能很有意思,tudou首頁(yè)從"娛樂"這個(gè)板塊往下的所有視頻的縮略圖并不是在頁(yè)面打開后就加載的,而是當(dāng)用戶拖動(dòng)滾動(dòng)條到了"娛樂"這個(gè)板塊,才開始加載圖片的。
    2010-06-06
  • javascript實(shí)現(xiàn)下拉提示選擇框

    javascript實(shí)現(xiàn)下拉提示選擇框

    這篇文章主要介紹了javascript實(shí)現(xiàn)下拉提示選擇框的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評(píng)論

平利县| 格尔木市| 新宾| 嫩江县| 东安县| 泌阳县| 白银市| 明光市| 资中县| 齐齐哈尔市| 互助| 龙里县| 垣曲县| 太仆寺旗| 阿坝| 博罗县| 交口县| 永川市| 易门县| 华宁县| 繁昌县| 昌黎县| 邓州市| 乌拉特前旗| 灵璧县| 临桂县| 莎车县| 黑龙江省| 重庆市| 确山县| 千阳县| 万载县| 巴林左旗| 松滋市| 那曲县| 溧水县| 邓州市| 东方市| 平南县| 炉霍县| 綦江县|