Javascript,等待页面在重定向后加载然后执行代码
Javascript, waiting for page to load after a redirect then executing code
您好,我已经在本网站上多次看到此解决方案,答案通常是以下之一。
$( document ).ready()
window.onload="myFunction()";
我正在制作一个 google 扩展,它使用 chrome 的选项卡更新重定向到一个新页面,然后使用 chrome 的选项卡执行脚本向该页面引入一个新脚本新重定向的页面单击一个按钮。我将重定向页面,然后使用上述方法尝试将新脚本获取到重定向页面上的 运行 而不是当前页面。可悲的是 none 他们工作了,他们仍然会让新脚本放在旧页面上。因此,为了解决这个问题,我只使用了 setTimeout 并将其设置为 1500,这大约足够我加载新页面的时间,但这不是很有效,并且对于用户来说可能有所不同是我做错了什么或者是这是唯一的解决方案吗?
我的代码看起来像这样。
chrome.tabs.update({url: "www.example.com"});
pause(); // I just took the liberty of shorting the whole setTimeout part
chrome.tabs.executeScript(null, {file: "jquery.js"}), console.log("jquery loaded");
当我尝试使用页面开头的原始解决方案时,我只是将执行脚本包装在其中,使其看起来像这样。
chrome.tabs.update({url: "www.example.com"});
pause(); // I just took the liberty of shorting the whole setTimeout part
$( document ).ready(){
chrome.tabs.executeScript(null, {file: "jquery.js"}), console.log("jquery loaded");
}
我目前正在做的是使用 250 之类的短 setTimeout,然后将我的代码包装在 .ready() 中 /works/ 但我更愿意将 setTimeout 一起删除,这就是这个问题的重点.
先感谢您!如果您需要更多信息,请询问。
我对 chrome.tabs 等一无所知,但使用计时器是一种技巧。任何异步调用都需要回调,即当调用函数完成其“thang”时触发的函数。
快速 google 我发现了这个:
chrome.tabs.update(integer tabId, object updateProperties, function callback)
因此您可以将回调作为最后一个参数传递。这是 link,向下滚动到 [更新] 部分。
如果您需要回调方面的帮助,post 另一个问题,我们将从那里开始...
您好,我已经在本网站上多次看到此解决方案,答案通常是以下之一。
$( document ).ready()
window.onload="myFunction()";
我正在制作一个 google 扩展,它使用 chrome 的选项卡更新重定向到一个新页面,然后使用 chrome 的选项卡执行脚本向该页面引入一个新脚本新重定向的页面单击一个按钮。我将重定向页面,然后使用上述方法尝试将新脚本获取到重定向页面上的 运行 而不是当前页面。可悲的是 none 他们工作了,他们仍然会让新脚本放在旧页面上。因此,为了解决这个问题,我只使用了 setTimeout 并将其设置为 1500,这大约足够我加载新页面的时间,但这不是很有效,并且对于用户来说可能有所不同是我做错了什么或者是这是唯一的解决方案吗?
我的代码看起来像这样。
chrome.tabs.update({url: "www.example.com"});
pause(); // I just took the liberty of shorting the whole setTimeout part
chrome.tabs.executeScript(null, {file: "jquery.js"}), console.log("jquery loaded");
当我尝试使用页面开头的原始解决方案时,我只是将执行脚本包装在其中,使其看起来像这样。
chrome.tabs.update({url: "www.example.com"});
pause(); // I just took the liberty of shorting the whole setTimeout part
$( document ).ready(){
chrome.tabs.executeScript(null, {file: "jquery.js"}), console.log("jquery loaded");
}
我目前正在做的是使用 250 之类的短 setTimeout,然后将我的代码包装在 .ready() 中 /works/ 但我更愿意将 setTimeout 一起删除,这就是这个问题的重点. 先感谢您!如果您需要更多信息,请询问。
我对 chrome.tabs 等一无所知,但使用计时器是一种技巧。任何异步调用都需要回调,即当调用函数完成其“thang”时触发的函数。
快速 google 我发现了这个:
chrome.tabs.update(integer tabId, object updateProperties, function callback)
因此您可以将回调作为最后一个参数传递。这是 link,向下滚动到 [更新] 部分。
如果您需要回调方面的帮助,post 另一个问题,我们将从那里开始...