<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      淺談瀏覽器插件檢測 和自定義協(xié)議的支持

      前一陣子一直在折騰瀏覽器的插件檢測和自定義協(xié)議的支持。

      經(jīng)過種種痛苦的折騰,算是對這一領(lǐng)域有了點淺顯的認知。特此記錄一下

       

      一、背景知識
      自定義協(xié)議:常用的協(xié)議有 http:// https://  ftp:// 等

      然而我們也經(jīng)常會遇到類似這樣的協(xié)議連接  
      thunder://  迅雷的

      item://  itunes的

      ed2k:// 電驢的

      這樣的協(xié)議是需要本地計算機安裝軟件與之接應(yīng), 實現(xiàn)相應(yīng)操作的

      也就是當你點一個類似的連接,瀏覽器會通知系統(tǒng)以何種程序處理該種協(xié)議的連接,這種對應(yīng)是通過注冊表來實現(xiàn)的

      參考資料:http://www.rzrgm.cn/Aricc/archive/2009/03/18/1415929.html 
       

      二、實現(xiàn)方案

      要定義一個自定義協(xié)議,首先需要你有一款程序與之對應(yīng),

      也就是說這個協(xié)議得有軟件去處理,一般會是下載操作。

      而自定義協(xié)議連接最終是顯示在網(wǎng)頁上的,最終這是網(wǎng)頁與本地程序之間的交互。

      而之間的橋梁就是瀏覽器。

      那么要支持一個自定義協(xié)議,還需要去檢測本地是否有支持該協(xié)議的處理程序。

      這個能力的檢測是要通過檢測瀏覽器的插件來判斷的。

      也就是 裝軟件的時候同時給瀏覽器增加插件,以便標示系統(tǒng)有能力支持協(xié)議。

       

      畫一個流程圖:

      發(fā)布軟件 和自定義協(xié)議——》安裝軟件同時給瀏覽器安裝插件———》用腳本檢測瀏覽器插件以判斷支持情況————》點擊自定義協(xié)議連接調(diào)用本地程序處理

       

      三、插件檢測

      IE 可以通過嘗試 new ActiveXObject(axname); 操作是否成功來判斷插件存在情況

      var a = false;
              try {
                  var obj = new ActiveXObject(axname);
                  a = true;
              } catch (e) {
                  a = false;    
                  };

                  return a; 

      IE的另一種方法是  預(yù)先埋設(shè)一個 object 并查看該object的屬性或者方法來判斷本地是否有能力支持

      比如apple itunes的object為: <object classID="CLSID:D719897A-B07A-4C0C-AEA9-9B663A28DFCB" width="1" height="1" id="iTunesDetectorIE" ></object>

       

      Firefox Chrome 等瀏覽器可以通過遍歷其plugin 查看pluginName是否符合來判斷插件存在情況

       

      var a = false;
              if(navigator.plugins && navigator.plugins.length > 0) {
                  for(var b = 0; b < navigator.plugins.length; b++) {
                      var c = navigator.plugins[b];
                      var d = c.name;
                      if(new RegExp(plugname,'i').test(d)) {
                          a = true
                      }
                  }
              }
              return a

       

      另一種方法是 通過mimetype 做判斷

       

      try    {
                  var mimetype = navigator.mimeTypes["application/"+plugname];
                      if(mimetype){
                          a = true;
                      }else{
                          a = false;
                      }
                  }
                  catch (e) {
                      a = false;
                  }
              return a;

       

       

      四、存在的問題:

      IE操作activeX控件的時候 瀏覽器可能會出現(xiàn)小黃條提示 這可能跟你的瀏覽器設(shè)置相關(guān),會有安全提示,這是無法避免的

      也不要企圖捕獲小黃條出現(xiàn)的事件,這是安全提示,除非用戶主動操作,其他手段無法干預(yù)

      當你的插件在不同的域名下運行時,會重復(fù)提示,只有用戶允許在該域名下運行時,提示才會消失。

      當然如果你肯花錢,你可以做成 itunes的插件那樣的,默認在任何域名下運行

       

       

      五、具體應(yīng)用的實現(xiàn)流程

      進入頁面,

      瀏覽器判斷

      不同瀏覽器的插件支持檢測

      cookie記錄檢測結(jié)果

      沒有插件————》預(yù)加載彈窗提示資源 

      監(jiān)測專用協(xié)議連接的點擊情況

      根據(jù)插件支持檢測結(jié)果做相應(yīng)操作

      有插件————》調(diào)用本地程序處理

      無插件(或者檢測不到)————》 彈窗提示安裝軟件

       

      六、關(guān)于強制調(diào)用

      如果不能確定本地有沒有相應(yīng)程序支持,而強制將專用鏈接給瀏覽器處理會怎樣?

      Firefox Chrome 都有有好的提示界面,提示瀏覽器不知道采用何種程序處理該協(xié)議的鏈接

      IE 不同 版本會有不同表現(xiàn),這跟它們的安全級別相關(guān)。

      首先所有的IE都會顯示一個丑陋的界面表示瀏覽器打不開這個鏈接 

      IE6的 安全性能最差,你可以用一個隱藏的iframe 來調(diào)用這個專用鏈接,而不會看到報錯信息,運氣好的話你可以

      調(diào)起本地程序

      IE7 8 9 則提升了安全性能,如果用隱藏的iframe來調(diào)用不識別的鏈接時,無論嵌套幾層,總會立即反映到最頂層

      顯示無法打開該鏈接,意在通知用戶你在調(diào)用一個不識別的協(xié)議,可能會危害你的計算機安全。

      IE9 第一次會報錯,顯示無法打開,而再次點擊則不會重復(fù)顯示無法打開的頁面。

       

      七、具體項目應(yīng)用和代碼實現(xiàn)

       

      http://zhushou.360.cn/script/360mobilemgrdownload.js

       

       

       示例地址:

       http://zhushou.360.cn/

       

       

       

       

       

       

       

       

       

       

      posted on 2012-05-16 11:33  trance  閱讀(6450)  評論(4)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 男女真人国产牲交a做片野外 | 亚洲欧洲日韩精品在线| 精品人妻系列无码天堂| 曰韩无码二三区中文字幕| 日韩av一区二区三区不卡| 亚洲av二区伊人久久| 色综合AV综合无码综合网站 | 欧美xxxx做受欧美.88| 丰满熟女人妻一区二区三| 国产精品爽爽久久久久久竹菊| 亚洲av乱码久久亚洲精品| 亚洲日韩一区二区| 国产日韩精品一区在线不卡| 国产av一区二区三区久久| 毛片无遮挡高清免费| 无码AV中文字幕久久专区| 国产精品视频不卡一区二区| 在线观看无码av五月花| 任我爽精品视频在线播放| av在线播放国产一区| 亚洲一区二区在线无码| 韩国午夜福利片在线观看| 国产黄色精品一区二区三区| jlzz大jlzz大全免费| 九九成人免费视频| 九九热中文字幕在线视频| 国产成人AV男人的天堂| 精品国产一区二区三区av色诱| 好吊视频一区二区三区在线| 国产亚洲999精品AA片在线爽| 日韩狼人精品在线观看| 久久亚洲精品中文字幕无| 4hu四虎永久免费地址ww416| 日韩少妇人妻vs中文字幕| 久久99精品久久久久久9| 中国china体内裑精亚洲日本| 视频一区二区三区四区五区| 午夜国产精品福利一二| 淮阳县| 亚洲色婷婷一区二区三区| 欧美老熟妇乱子伦牲交视频|