我想构建一个海关预定义的Java脚本,该脚本将执行一系列操作 在2个不同的网站上。
但是我的问题是,当我使用重定向
window.location.href
将不执行脚本中的下一个命令。 我正在使用Tampermonkey扩展来执行脚本 例如,我正在使用以下脚本
但是,脚本永远不会进入第二个警报 我在以下线程上问了类似的问题
Simulate mouse clicks in JavaScript in Chrome
如何解决window.location.href?
(function() {
'use strict';
alert('alert1');
window.location.href = ("http://www.w3schools.com");
alert('alert2’);
})();
答案 0 :(得分:0)
默认情况下,window.location的工作方式是仅告诉浏览器重定向到给定的URL。此后,浏览器基本上不存在任何代码。我为什么这么说?因为代码只能在将控件提供给浏览器之前运行。在获取新URL的那一刻,代码执行停止。
所以,要回答这个问题-代码执行会在window.location.href之后停止吗?>不是,但是,是的!
将其视为各种返回语句。您执行一些操作,然后返回到另一个页面(使用window.location)。您的警报可能正在执行,但是浏览器会在显示重定向之前启动重定向。
您可以尝试切换到console.log以确认相同,并在浏览器devtools中启用“ Persist Logs”。
但是,我过去也遇到过类似的问题,我通过遵循一些Stack Overflow答案来解决了这个问题。
因此,我将在此处链接答案,以便他们将获得实际解决方案的功劳-
jQuery code not called after window.location.replace( url )
How to run code after changing the URL via window.location?
这可能也有帮助(如果您不熟悉JS)- Javascript: Detect when a window is fully loaded
答案 1 :(得分:0)
您无法使用浏览器上运行的脚本来执行此操作。导航发生后,当前的javascript不再有效。
您将需要控制客户端,并且需要页面加载之间的持久性。
以下是一些选项(无特定顺序)
希望这会有所帮助