好的,现在我正在编写一些JavaScript代码,我只需将其复制到Firefox控制台并运行即可。 (对不起,我仍然是一个大块的菜鸟,我想写一个小脚本,基本上,打开一个特定的网页,并从中收集信息形成某些div。)
然而,我现在正在挣扎。我想打开某个网页,然后,在完全加载后,执行某个功能。 (为简单起见,此函数的计数从0到99。)
<span class="icon-some"></span>
.icon-some {
color: orange;
}
我的问题是:递增函数永远不会被调用(或者至少它似乎是因为我在控制台中看不到任何类型的输出。)为什么我的setTimeout不工作或什么是另一种选择,以实现我想做的事情?当新访问的网站完全加载时,我真的很想运行一个特定的功能。
答案 0 :(得分:1)
当您更改位置时,窗口对象及其所有相关内容(包括计时器)将被丢弃并创建一个新对象。您无法在旧文档中安排代码在新文档中运行(甚至不是从浏览器控制台)。您必须在导航到新页面之后粘贴并执行代码,而不是之前,这意味着您无法从代码中导航到它。
您可能会查看TamperMonkey或GreaseMonkey等工具,以便您运行代码以响应与某些网址匹配的网页加载。
答案 1 :(得分:0)
window.location.replace()
退出当前页面并加载新页面。因此,当前页面的任何剩余JavaScript都不再执行
答案 2 :(得分:0)
您的功能正常运行唯一的问题是var n;
行使用您提供的网址重新加载网站,这样整个页面就会从开始重新加载,您的网页会丢失您的功能。
尝试以下内容了解
window.localtion
答案 3 :(得分:-1)
您可以添加一个eventListener来处理页面加载时触发的页面文档。
document.addEventListener('DOMContentLoaded' function(e) {
// page is loaded do you fancy stuff in here
// no timeout needed
});
编辑:忽略了他想在随机页面上通过控制台进行操作。这将无法工作,因为在locationchange上,所有当前脚本都将停止,并且全局对象将被销毁。
使用类似Greasemonkey
的内容。