2011-09-16 30 views
5

我有一個Windows托盤應用程序需要與我的網絡應用程序進行通信,尤其是顯示來電信息。從瀏覽器外部調用Javascript函數?

電話應用程序(ProCall)可以在收到呼叫事件時啓動應用程序。

我可以在一個新的瀏覽器窗口中打開一個特定的URL,但理想情況下,我想要啓動一個EXISTING瀏覽器窗口的Javascript函數,然後通過AJAX進行操作。

這甚至可能嗎?

+0

Hej Dylan即時消息服務器的方式做...您使用什麼服務器端技術? – megakorre

+0

Apache與PHP – Dylan

回答

0

您可以在頁面上插入<script>標籤? 如果是的話,你可以把裏面的函數調用,或其他代碼

+0

是啊,但我需要調用另一個瀏覽器窗口中的現有功能......我認爲出於安全原因,這是不可能的......但也許有一種解決方法? – Dylan

+0

我認爲只有當你將與服務器交互時纔有可能。頁面無法在沒有請求的情況下處理任何迴應。只有當你改變url(在#之後添加一些數據),並且頁面必須具有讀取url數據函數的循環 – Falcon

0

如果你可以改變javascript來源,我會說你調用的url有aditional GET /查詢字符串參數,或者一個散列,並且你的js解析它,並採取相應的行動

如果你想使用現有的窗口,你可能可以使用COM和一些方法來改變一個打開的網站的散列,以發送命令到JavaScript而無需重新加載。我很確定有可能用IE做這樣的事情,可能還有FF。當然,您需要創建一個獲取實例並調用其方法的桌面應用程序。我推薦.net或.vbs腳本

2

您可以通過AJAX(使用輪詢)或COMET將應用程序與本地服務通話,並讓托盤應用程序託管該服務或與該服務對話。這樣你就可以從瀏覽器到托盤應用程序有一個非常簡單的通信渠道。

否則,您正在查看像我所知的活動x控件。

0

你想在兩個瀏覽器窗口之間進行通信,但首先你必須從第一步開始:如何將瀏覽器窗口與另一個窗口相關聯? 爲什麼A聯繫人B不是C?

答案取決於這種關係。例如,如果A以某種方式導致B產生,那麼將傳遞給B的「指針」(其可以簡單地是會話ID)。