2009-02-02 89 views
19

我有一個客戶想要使用Google Chrome作爲我們開發的內部網絡應用程序(我不怪他,我真的很喜歡使用Chrome瀏覽器!)谷歌瀏覽器擴展程序的點擊次數?

問題是我們有一個贏得表格應用程序,用戶可以從瀏覽器啓動,使用點擊一次進行部署。我已經知道一段時間了,Chrome不支持點擊一次,但現在我認爲可能會有一些支持。

我花了幾分鐘,周圍堆棧溢出和谷歌搜索,並沒有發現任何明顯或暗示如果有人在IT規劃已經制定了鍍鉻點擊一次擴展(類似於FFClickOnce)。

那麼,有沒有人有點擊一次在鍍鉻工作或有沒有人見過插件/擴展,支持點擊一次的任何消息嗎?

+0

嗯......好問題......我很喜歡其中的一個......我不知道(不知道)寫一個會有多難? – 2009-02-02 08:32:56

+8

我只是補充一點,谷歌正在使用ClickOnce在IE瀏覽器上部署Chrome。有趣:) – 2009-02-03 04:50:24

回答

0

微軟在前段時間發佈了Firefox的插件,因此它們確實支持其他瀏覽器。使用javascript編寫插件時,我認爲應該可以查看源代碼以確定它是如何完成的,也可以編寫自己的代碼。

2

谷歌Chrome目前沒有擴展或擴展架構。擴展體系結構仍然是他們的產品,我想這些產品很快就不可用。然而,Chrome的Greasemonkey支持即將到來,有signs。無論如何,某些類型的Javascript代碼似乎是您目前唯一的希望。

+1

Chrome現在包括擴展 – 2010-12-21 23:32:31

8

Chrome是不能夠自動啓動資源管理器一樣做的setup.exe,但Chrome並下載它像任何其他文件。用戶在下載之後運行它並不困難,直到Chrome提出了一種使其自動啓動的方式。

+2

這現在工作。感謝您的直接理念!我一直專注於* .application文件,但我可以交替提供一個鏈接到setup.exe – Dan 2009-02-03 11:57:08

+1

只做了一些更多的測試,我發現你不能傳遞查詢字符串參數。這是目前最接近的解決方案,但仍不完美。 – Dan 2009-02-03 12:13:31

5

Chrome現在有一個擴展,允許您啓動一次點擊應用(ClickOnce for Chrome)。

可惜所以它是不可能知道如果網站將支持它,它不會更新用戶代理。有一種方法可以在Chrome中更改用戶代理,但這不是我希望普通用戶能夠做到的事情。但是,Chrome幫助論壇上的here is an answer解釋瞭如何參考。

基本上創建快捷方式Chrome和該命令行參數添加到目標。

--user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10 .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET4.0E" 

您可能想確保您擁有當前的用戶代理。 Here is a site,它會顯示給你。您希望添加到用戶代理的部分是「.NET CLR 3.5.21022; .NET CLR 3.5。30729;「(當然這也可能取決於機器上安裝的是什麼)

這種方法的另一個缺點是它沒有出現修改過的用戶代理程序在JavaScript中可用(我仍然得到未修改的版本)。

------ 編輯 ------

如果你想知道,如果ClickOnce是可以在客戶端上,這裏是一個JavaScript函數我寫了,會告訴你...

this.hasClickOnce = function() { 
    var userAgent = navigator.userAgent.toUpperCase(); 
    if (userAgent.indexOf('.NET CLR 3.5') >= 0) return true; 
    if (window.clientInformation && window.clientInformation.plugins) { 
     // check to see if a ClickOnce extension is installed. 
     for (var i = 0; i < clientInformation.plugins.length; i++) 
      if (clientInformation.plugins[i].name == 'ClickOnce plugin for Chrome') return true; 
    } 
    return false; 
};