簡體   English   中英

在新標簽頁中加載頁面后調用函數

[英]Call function after page was loaded in new tab

單擊按鈕后,我需要在新選項卡中打開一些鏈接,並且比頁面加載后要多,因此我需要以編程方式在此頁面上執行一些操作(例如單擊適當的GUI元素等)。

例如,此代碼應在新標簽頁http://stackoverflow.com中打開,然后單擊“標簽”:

<button type=\"button\"
    onclick="window.open('http://stackoverflow.com', '_blank');
    document.getElementById('nav-tags').click();">Click Me!
</button>

但不會調用函數document.getElementById('nav-tags').click()

正如我在評論中所說,無法直接在選項卡/窗口之間進行通信。

可以通過以下方法解決:

  1. 當打開另一個標簽時,在url中發送您需要的數據(就像我在注釋stackoveflow.com/tags中建議的那樣)
  2. 使用Cookie進行通信( https://stackoverflow.com/a/4079423/3600886
  3. 使用本地存儲進行通信( http://dev.w3.org/html5/webstorage/)-有一個用於該存儲的庫: https : //github.com/diy/intercom.js/

如果您的用途是僅在頁面加載時顯示一些數據,我想說第一種選擇是,它將不受所有其他限制地在所有瀏覽器上運行。

使用其他選項時,您將需要頁面位於相同的域或具有相同的父窗口,並且舊版本的瀏覽器不支持本地存儲。

通過JavaScript創建選項卡,然后可以使用JavaScript訪問該選項卡並放置onload函數

var w = window.open();
w.onload = function(){

};

您還可以將onload函數放在選項卡中:

window.onload = function(){
}

您需要在.ready事件中編寫JS。 因此,當整頁DOM准備就緒時,它將被調用:

$(document).ready(function () {
      document.getElementById('nav-tags').click();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM