如何在瀏覽器中開啟im並執行相應操作?下面以旺旺為例說明,對於qq等原理一致。
1. 瀏覽器中如何判斷旺旺是否已經安裝?
下面一步步來探索,過程如下:
(1) 開啟**任意店鋪頁面,檢視原始碼,在亮燈旺旺圖示處有如下**:
有這樣一段函式,它首先建立乙個aliimx的activex物件,如果建立成功則說明旺旺被安裝了,否則根據站點**(**中國站、阿里中國站、雅虎中國站)分別判斷是否安裝了其它幾個版本的旺旺。原始碼如下:
function isinstalledclient(c)
} catch(d) {}
var a = getsite(c);
if (a == "cntaobao")
} else
} else
} else }}
return 0
}
function newcheckalitalkinstalled()
} catch(b) {}
return a
}function newcheckwangwanginstalled()
} catch(b) {} finally
return a
}function newcheckyahooinstalled()
} catch(b) {}
return a
}
為何通過
var b = new activexobject("aliimx.wangwangx");
if (b != null)
這段**能判斷出windows是否安裝了旺旺呢?
旺旺安裝到windows中之後會在登錄檔中寫入若干條登錄檔項,在瀏覽器中通過activex控制項來讀取登錄檔,如果能夠找到相應的登錄檔項,則說明當前windows中安裝了旺旺,否則表明沒有安裝。呼叫
new activexobject("aliimx.wangwangx");
的時候瀏覽器會去讀取登錄檔,在hkey_classes_root下搜尋aliimx.wangwangx表項,找到了則說明系統安裝了阿里旺旺。
由此我們也可以知道,如果系統中的旺旺是未經「美化」的綠色版,瀏覽器不一定能夠判斷出它的存在。
2. 如何在瀏覽器中把旺旺聊天視窗開啟?
在1中我們已經判斷出系統中安裝了阿里旺旺,那麼下一步就是開啟旺旺聊天視窗。怎麼做呢?一切還是通過website.js中得指令碼實現的,從sendclientmsg函式往下找,可以看到如下一段**:
command = "aliim:sendmsg?uid=" + d + g + "&touid=" + c + b + "&siteid=" + c + "&status=" + e + getmoreproperties(f);
execaliimshell(command)
function execaliimshell(a)
這說明瀏覽器在處理這種目標路徑的時候會採取比較特殊的動作。在windows中這叫做「shell命令」。shell命令能夠讓瀏覽器開啟外部的應用。那麼,瀏覽器是如何根據aliim:sendmsg這個命令找到對應的外部應用的呢?奧妙還是在登錄檔中,在登錄檔中搜尋aliim關鍵字,可以看到如下內容:
aliim項下記錄了它對應的應用的路徑。這裡應用的名稱是wwcmd,它應該是乙個命令解析器,%1是它的引數,也就是位址中冒號(:)之後的內容,wwcmd將根據解析好的命令開啟阿里旺旺對應的聊天視窗。
我的sina微博:
歡迎前來討論
如何實現在瀏覽器中開啟IM聊天視窗?
如何在瀏覽器中開啟im並執行相應操作?下面以旺旺為例說明,對於qq等原理一致。1.瀏覽器中如何判斷旺旺是否已經安裝?下面一步步來探索,過程如下 1 開啟 任意店鋪頁面,檢視原始碼,在亮燈旺旺圖示處有如下 有這樣一段函式,它首先建立乙個aliimx的activex物件,如果建立成功則說明旺旺被安裝了,...
tensorboard在瀏覽器中開啟問題
原 2019年01月02日 19 27 44 何不呤叮 在命令列切入到logs檔案所在的盤後,輸入tensorboard logdir d pycharmprojects learn tf logs,出現如下命令 將http hn 75p35q2 6006 不正常 複製到google,無法顯示 te...
在Nginx瀏覽器中開啟目錄瀏覽功能
在ng程式設計客棧inx中不像apache預設是開啟目錄瀏覽功能的,在nignx中目錄瀏覽功能預設是關閉了,下面我來介紹在nginx中實現目錄瀏覽功能的配置方法。開啟nginx.conf檔案,在location server 或 http段中加入 autoindex on 另外兩個引數最好也加上去 ...