[英]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.