2016-02-28 67 views
0

我試圖使用Javascript單擊非活動Chrome選項卡上的鏈接。我開始用這個腳本:使用Javascript單擊非活動Chrome選項卡上的鏈接

document.getElementById('extractResults').click(); 

我發現,當我目前右標籤和窗口這個腳本工作,但是當我瀏覽到一個不同的標籤或窗口,這是行不通的。

這是我到目前爲止最接近的,但不能得到它的工作!

set tabName to "Name of Tab" 
set javascriptStr to "document.getElementById('ID of Link').click();" 

tell application "Google Chrome" 

    set myTab to tabs of windows whose title is tabName 

    repeat with i in myTab 
    if (contents of i) = {} then set contents of i to 0 
    end repeat 

    set myTab to lists of myTab 

    if length of myTab = 1 then 
    set myTab to item 1 of myTab 
    if length of myTab = 1 then 
     set myTab to item 1 of myTab 
     tell myTab to execute javascript javascriptStr 
    end if 
    end if 
end tell 

回答

0

除非兩個不同的網頁,在這兩個不同的標籤必須相互有一定關係,它會明確被允許的,因爲這將是一個嚴重的安全漏洞。

想象一下,如果我訪問了您的網站並且您有代碼進行迭代以及與我碰巧在瀏覽器中打開的任何其他選項卡進行交互的安全和隱私問題!

但是,您的網頁可以如果他們有關係進行交互。例如,如果一個標籤通過另一個標籤頁中的鏈接打開了。在這種情況下,執行打開操作的代碼必須保存對所打開頁面的窗口變量的引用。

然後,您可以調用myOtherWindow.document.getElemetnId()和(大部分)與它進行交互,就像執行當前頁面一樣。

請參閱:https://developer.mozilla.org/en-US/docs/Web/API/Window/open

+0

感謝您的迴應!我應該提到,我不是在網頁上運行腳本,而是在名爲Keyboard Maestro的單獨應用程序中運行該腳本。在新的背景下,這個問題是否有很好的解決方案? 謝謝! 傑夫 –

相關問題