![](/img/trans.png)
[英]Why doesn't onload event work on a tab opend with window.open?
[英]Why window onload event doesn't get triggered on recursive call?
打開新選項卡時,未觸發window onload事件。 以下是執行此操作的示例代碼。 在這里嘗試嘗試在不同的同一選項卡中依次打開URL列表,因為未觸發onload事件,因此沒有進行遞歸調用。
var urls = ['https://stackoverflow.com/q/4907843', 'https://stackoverflow.com/q/19851782', 'https://stackoverflow.com/q/726761']; function opennewtab(i) { var w = window.open(urls[i], 'so', ''); if (w) { w.onload = function() { opennewtab(i + 1); } } }; opennewtab(0);
全部都在同一個域中。 請在此處將代碼段粘貼到瀏覽器開發人員工具的同一頁面中。
為什么不使用承諾? 我還沒有測試過,但是應該看起來像這樣:
const urls =
[ 'https://stackoverflow.com/q/4907843'
, 'https://stackoverflow.com/q/19851782'
, 'https://stackoverflow.com/q/726761'
]
function Load_URL(url) {
return new Promise(res=>{
let w = window.open(url, 'so', '')
w.addEventListener('load', res)
})
}
for (let url_x of urls) await Load_URL(url_x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.