2013-04-23 41 views
0

我需要一個JavaScript函數在拉撒路開發既OSX和Windows應用程序觸發功能。我正在學習拉撒路,我將自己形容爲中級初學者。我對javascript知之甚少。通過的消息從JavaScript應用程序 - Windows和Mac OSX - 拉扎勒斯

據我瞭解JavaScript的沙箱運行,從而不能直接訪問的應用程序。因此,我正考慮使用某種來自JavaScript的tcp調用到應用程序中,傳遞一個參數,當收到這個參數時,會觸發該事件。這需要在Windows和Mac上運行。理想情況下使用相同的組件/代碼,但如果這是不可能的,那麼無論我需要做什麼。

我的問題是:

1)這聽起來像是正確的方法嗎? 2)如果確實如此 - 用什麼最好的方法和組件來實現這個目標?

我一直在尋找在突觸 - 但老實說我有點在我需要使用和閱讀了關於設置此哪些組件丟失。

所以基本上 - JavaScript需要一個參數發送給我的申請,我們會在收到時再採取行動。

如果可以提供幫助,請提前致謝。

+0

你用什麼類型的服務器來生成你的頁面?你在使用PHP,.NET等嗎?還是隻是在創建靜態HTML頁面? – Godwin 2013-04-23 22:47:53

+0

對不起 - 我不清楚。我沒有生成任何頁面。我實際上做的是試圖觸發我的應用程序在Adobe Photoshop中執行任務。 Photoshop允許您使用JavaScript將菜單項添加到其某些產品中。我的應用程序是一個相當標準的Lazarus桌面應用程序。所以我需要使用Javascript從Photoshop菜單項中獲取一條消息到我的應用程序中(以觸發一個動作)。我的應用程序本身不會返回任何回報(除非爲了完整性它必須返回一些東西)。 – user2125574 2013-04-24 00:03:51

回答

0

你可能需要閱讀更多關於JavaScript的,因爲它有一個像沒有訪問本地文件很大的侷限性,不可能與服務器不是來自同一個域名下面的鏈接將可能給你一個更好的主意通信:

http://en.wikipedia.org/wiki/Same_origin_policy

http://javascript.about.com/od/reference/a/cannot.htm

HTML5 WebSockets的可能是一個路徑,但它沒有得到廣泛的支持在所有瀏覽器尚未:

http://www.html5rocks.com/en/tutorials/websockets/basics/

編輯:

現在您提供更多的細節,你可以當他創建應用程序中的線程會檢查文件或理想的一個表,其中您的服務器端寫入到它的javascript或(Ajax)查詢,要求他在應用程序中觸發信號。

有很多方法可以做到這一點我在一個最簡單的,更提前一個提到的,將是一個信號發送到您的應用程序。 (從服務器嚮應用程序發送信號)數據庫解決方案具有更多優勢,您可以爲參數指定列,並且您將擁有更多靈活性,一旦處理來自該共享表的請求,就會標記該行。

下面是實現你的表的一種方式(處理是說,如果你的信號已經processed--也可以刪除一次處理的行的標誌):

| signal_id |參數| application_id | datetime |處理(標記爲 0或1)|

+0

請看我上面關於我想要做的事情的評論。由於應用程序始終與javascript相同,因此我認爲通信問題不會影響我。謝謝你們的聯繫 - 明天我會讀。 – user2125574 2013-04-24 00:10:15

1

我只是做了一個快速搜索,在我看來Adobe Photoshop腳本並不完全是JavaScript,而是它的一個名爲ExtendScript的變體。有關於您可以找到的語言的指南(like this one),但也執行快速谷歌搜索this pagethis page,其中描述了可用於執行外部應用程序的File.execute命令,該命令可能是最佳的路線。

我對服務器的問題提出了另一種選擇,如果你有一個服務器運行,你可以使用URL從JavaScript調用它。然後服務器可能有更多的權力來處理事件。

對不起,只是送你到其他網站和方向來嘗試解決這個問題,但這是一個相當具體的領域。

+0

外部程序可以通過任何形式的Windows IPC向Lazarus應用程序發送信號。 – 2013-04-27 12:38:54

相關問題