2012-01-11 52 views
2

有沒有辦法用javascript和/或jQuery按下外部網站上的按鈕?就像我打開一個新的窗口,像這樣:使用javascript按鈕在外部網站上的按鈕

windowObjectReference = window.open("http://some_site.html","name"); 

然後,我想按本網站上的一個按鈕。事情是這樣的:

windowObjectReference.button.click(); 

或者:

name.button.click(); 

回答

5

這將是一個巨大的安全違規,如果瀏覽器將讓你這樣做從放置在自己的網站上的腳本。

因此,不,這是不能做到的,不應該是可能的

但是......

如果它們都屬於你(你可以訪問他們的代碼),你可以傳遞參數(例如,URL作爲一個哈希表),則目標網站可以讀取它會觸發你提到的事件(name.button.click())。

+0

,你不會那樣做排在首位,而'window.open '會給你另一個窗口對象。 https://developer.mozilla.org/en/DOM:window.open所以沒有必要搞亂散列。 – greut 2012-01-11 11:26:02

+1

@greut:如果這兩個網站都屬於你並且他們擁有不同的域名,那麼你是否真的能夠訪問該窗口的內容?問題是關於_external site_,我把它理解爲域之外的東西。 – Tadeck 2012-01-11 11:31:40

+0

我知道我可以通過window.open()訪問同一個域,但問題是關於不同的域。所以感謝哈希建議,我會嘗試一下。 – user1142908 2012-01-11 11:44:00

2

您無法使用JavaScript從網頁執行此操作。 雖然你可以從瀏覽器擴展中完成。

+0

謝謝,你有任何特定的瀏覽器和擴展?我想Firefox。 – user1142908 2012-01-11 11:08:03

+0

幾乎所有的瀏覽器。我在Chrome中使用「空白畫布腳本處理程序」,Opera支持開箱即用的用戶腳本,Firefox需要一個名爲GreaseMonkey的插件。 – DenisPostu 2012-01-11 11:34:23

+0

這是我一直在尋找的解決方案。非常感謝你。 – user1142908 2012-01-11 13:00:33

1

不!

出於安全原因。這種攻擊稱爲clickjacking!並在Twitter上使用。

+0

我沒有意識到,從來沒有聽說過clickjacking,名字聽起來很有趣,雖然:) – user1142908 2012-01-11 11:09:09

1

有沒有一種方法可以用javascript 和/或jquery按下外部網站上的按鈕?

我知道我遲到了,但YES,不幸的是,這是一個非常簡單的方法。

  1. 在您的頁面上創建div(例如#externalDiv);
  2. 將CSS屬性設置爲隱藏並顯示爲無;
  3. 使用(簡單方法)使用jQuery方法.load()或使用自己的JS方法使用XMLHttpRequest();
  4. 在您的頁面上加載外部頁面;
  5. 點擊按鈕,你希望

    $( '#externalDiv')負載( 'http://www.externalPage.com',函數(){$( '#externalPageButtonId')點擊();});

不能由總督的東西,如果您不知道它是如何的,如果第二個網站是屬於你的工作:)