2015-11-11 86 views
0

有沒有一種方法可以讓javascript訪問特定計算機用戶留下的變量?我知道系統變量是不可能的。計算機特定的JavaScript執行

目前我有一個POS網絡應用程序,它將HTTP HEAD請求發送到服務器,專門用於更新pos終端的顯示器極點單元。

該應用:

1)發送HEAD請求到服務器
2)服務器與所述有效載荷接收該請求,並寫入到被連接到POS終端的LAN> COM端口的虛擬端口,其在將寫入轉到極點

但是,當手機和便攜式計算機等其他設備使用pos應用程序時,每當訂單項在表單中發生更改時,它們都會發送這些請求。這是很多無用的請求(因爲這些計算機沒有自己的顯示器)。

我喜歡它,以便JS可以搜索用戶可以放入系統的特定變量。如果它在那裏,發送請求。如果沒有,甚至不要嘗試。

沿着瀏覽器插件的行可能?如「在此域中設置此變量」。

+0

這聽起來像你正在尋找餅乾。 – Bergi

+0

這聽起來像是你擊中了頭部。那些日子中的一天... – JakeTheSnake

回答

2

出於安全原因,瀏覽器中的純Javascript不能訪問瀏覽器環境以外的東西。瀏覽器插件可以訪問瀏覽器以外的東西,因此它可以爲外部設置創建一個界面。

聽起來像是POS終端在使用POS網絡應用程序時指定了一個稍微不同的URL,而且不同的URL(比如查詢參數)會告訴您的應用程序服務器放置一個Javascript變量在頁面上表明這個應用程序的使用確實有一個顯示杆單元連接,所以它應該做任何人會做時,連接。

同時,從筆記本電腦或手機使用的公開的URL在URL中沒有該特殊參數,因此頁面中的Javascript可能知道它未連接到顯示器極單元,應該按指示行動。

對於這兩個類別的用戶,您可以擁有相同的Web應用程序,該一個配置變量根據啓動會話的URL設置不同。


您可以在瀏覽器中存儲配置信息的其他地方是Cookie和LocalStorage。因此,pos終端的設置過程可能會導致LocalStorage值被設置,以便您的Javascript可以從LocalStorage值中知道此瀏覽器已連接到顯示器極點單元,但手機/膝上型計算機瀏覽器不會擁有該LocalStorage值設置,以便Javascript可以在使用應用程序時相應地採取行動。


這是另一個想法。我不知道你的POS終端裏有什麼樣的瀏覽器,但是如果它有一個唯一的用戶代理字符串,或者它可以被配置爲具有唯一的用戶代理字符串,那麼你的頁面中的Javascript可以檢查navigator.userAgent並檢查它看看是否有任何特定的標記出現在字符串中,表明這是POS終端瀏覽器,而不是其他瀏覽器。


安裝一個瀏覽器自定義瀏覽器插件(即沒有做,除了存在與已知名稱的任何東西)在POS終端的瀏覽器。然後,使用Javascript來檢測該插件是否存在。如果是這樣,你知道它像連接到顯示器一樣行事。如果不存在,則不顯示附加。


總結選項:

  1. 從POS終端訪問Web應用程序時,在網址中使用查詢參數。這會告訴你的Javascript有一個終端連接。您可以隨時在查看查詢參數時設置cookie,以便其他頁面(不含查詢參數,但從同一設備加載)也能看到配置。

  2. 作爲pos終端設置過程的一部分,運行一個頁面,該頁面可以設置一個cookie來告訴JS這個查看器是pos終端。

  3. 作爲pos終端的設置過程的一部分,運行一個頁面,該頁面將值設置爲LocalStorage,以告知JS此查看器是pos終端。

  4. 將一些自定義指標添加到POS終端瀏覽器中的用戶代理字符串,然後您的Javascript可以檢測到該指標。

  5. 在POS終端上安裝一個自定義瀏覽器插件,您的頁面Javascript可以檢測其存在並採取相應行動。