如何實現在瀏覽器中開啟IM聊天視窗?

2021-08-26 10:31:48 字數 1965 閱讀 3504

如何在瀏覽器中開啟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 另外兩個引數最好也加上去 ...