2011-02-17 76 views
1

可能重複:
How to detect browser's protocol handlers?如何判斷是否一個協議是有效的在Javascript中

某個軟件(基於非瀏覽器)安裝了一個自定義的協議在安裝時。因此,如果安裝在系統上的軟件,把一個鏈接,看起來像

<a href="mycustomprotocol:///foobar">Launch the program!</a> 
在網頁中

點擊時啓動軟件(後張貼當然是一個警告)。

如果未安裝該軟件,我想動態更改該元素,以便瀏覽器不嘗試啓動它。

有沒有在javascript中檢測協議是否有效的方法?希望它至少可以在Firefox,IE,Chrome和Safari中運行。

感謝

+0

在移動設備上,你可以使用嵌入式iframe來定製協議和已知的一個(網絡或應用程序商店),看到的是https之間自動切換://gist.github .COM/2662899 –

回答

1

沒有辦法使用JavaScript來訪問用戶的桌面文件系統或註冊表來驗證一個自定義的協議。

1

如果支持,您可以嘗試捕獲window.onError事件或a.onError事件中的錯誤,然後改爲使用javascript導航到回退URL。

1

您在javascript中訪問的所有內容是navigator.plugins,它會告訴您安裝了哪些插件。問題在於,如果瀏覽器不知道如何處理它,瀏覽器會將協議傳遞到操作系統進行處理,並且您無法通過JavaScript查找操作系統安裝的所有不同的協議處理程序。

所以,換句話說:不......

相關問題