簡體   English   中英

在錨點的鏈接打開后運行javascript

[英]run javascript after the link of an anchor has opened

我有一個iFrame,其中包含帶有target="_blank"的錨點。 我希望在新窗口打開后在iFrame中運行一些JavaScript。

我嘗試在錨點的onclick事件中使用setTimeout(/*my js to run*/, 0) 它適用於Chrome,但不適用於Firefox。 在setTimeout中設置100毫秒的延遲似乎可以解決Firefox的此問題,但是此解決方案看起來不太干凈。

在新窗口中打開鏈接后,是否存在運行js代碼的標准方法?

編輯一些說明:我要運行的js觸發頁面刷新。 如果將其直接放在onclick事件中,則不會打開錨鏈接,因為onclick事件之前發生過。 這就是為什么我需要在新窗口打開后運行js代碼。

第二次編輯我可以訪問第一頁和彈出窗口,但不能訪問鏈接的目標。

如果您需要刷新並在新窗口中打開鏈接,則確實需要這樣的setTimeout

排隊:

<a href="popup.html" target="_blank" 
onclick="setTimeout(function() { location.reload(1);},10)">Click</a>

更好:

<a href="popup.html" id="pop" target="_blank">Click</a>

運用

function reload() {
  setTimeout(function() { location.reload(1);},10);
}
window.onload=function() {
  document.getElementbyId("pop").onclick=reload;
}

您是否可以訪問彈出窗口中的頁面,它是否與iFrame相同,並且與父頁面相同? 然后,您可以使用彈出頁面的onload事件:

window.onload=function() { opener.reload(1); }

將onReady或onLoad掛鈎添加到正在加載的頁面中。 然后,“在新窗口打開之后”將運行JavaScript。 如果需要影響父窗口,請在彈出窗口的JavaScript中使用window.opener

暫無
暫無

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

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