2014-03-26 38 views
0

我正在尋找一種方法來在遠程網頁中觸發JavaScript事件而無需在瀏覽器中打開它。JavaScript:有沒有辦法遠程啓動一個javascript函數?像onClick

我的意思是,讓我解釋我的情況: 我現在所做的是,我在特定的網頁上運行GreaseMonkey上有兩個腳本。 頁面A的腳本A,頁面B的腳本B.

腳本A一直向頁面B發送xmlHttpRequests,它獲取數據,在reg-exp中處理並進行一些比較。當我對腳本A的條件滿足時,我發送一個window.open打開頁面B.

在頁面B上,我有腳本B正在運行,腳本B再次檢查頁面B的內容,看看是否同一個SAME腳本A的條件得到滿足,進行雙重檢查,然後觸發我需要的點擊事件。

問題是,太慢了。我需要優化它。 打開頁面B並加載其內容(如圖像,背景,CSS樣式等)的速度太慢,需要幾秒鐘才能加載頁面,精確度爲5到10秒。我需要它在1或2秒以內。

有沒有辦法在頁面B上觸發JavaScript事件,而無需加載頁面B的全部內容?

謝謝。

回答

0

不可靠。

您可以設置節點實例來請求頁面,並針對http響應運行服務器端JavaScript,但這不會像在瀏覽器窗口中運行腳本那樣可以與腳本進行交互頁面運行,以及它從其他URL導入的資源。

要在頁面上觸發事件,它必須加載到瀏覽器中。儘管如此,你可以通過Phantom或其他無頭瀏覽器加快速度。

如果您希望任何一天的表現和質量超過greasemonkey,我會推薦後者。這有點複雜,但如果這是一個持續的比較,將它自動化到背景中並遠離渲染瀏覽器似乎是最好的。

+1

我已經用幻影做過一些事情,但沒有很多成功,然後我花了太多的時間花在了一個小問題上。問題是我必須在頁面B上登錄,然後,我在Phantom上做了失敗,也許我需要再試一次,並在那裏做更多的努力。正如你所說,我同意,如果沒有渲染瀏覽器,這將是非常糟糕的。 –

0

我的解決方案可能不是完美的,但你可以做下(如你在AR的GreaseMonkey)

1- XMLHttpRequest的網頁B

2-作出比較

3-如果滿意,把你從第一次的XMLHttpRequest到一個新的div得到的innerHTML/iframe的創建,使無形的

4-那裏你可以運行click事件成DIV/IFRAME

+0

我不知道它是否有效,因爲我沒有自己的頁面B腳本。我的意思是,我可以創建div,這些元素,但是當元素被點擊時頁面B運行的腳本又如何呢? –

+0

即使頭文件和腳本是由服務器返回的。把這些放在iframe元素中,它應該工作。 – eventHandler

相關問題