如何使javascript仅在通过上一个操作完成页面加载后执行?

如何使javascript仅在通过上一个操作完成页面加载后执行?,javascript,Javascript,我想做的是使用javascript在页面上单击一个按钮,然后等待下一个页面出现,然后单击另一个按钮。之前我是这样做的: document.getElementById("abc").click(); document.getElementById("def").click(); // I want this for page 2. document.getElementById("abc").click(); var t=setTimeout(function(){document.getE

我想做的是使用javascript在页面上单击一个按钮,然后等待下一个页面出现,然后单击另一个按钮。之前我是这样做的:

document.getElementById("abc").click();
document.getElementById("def").click(); // I want this for page 2. 
document.getElementById("abc").click();
var t=setTimeout(function(){document.getElementById("def").click();},3000)
这不起作用,因为第2页在到达第二行代码之前没有被加载

通过这样做,我找到了解决方法:

document.getElementById("abc").click();
document.getElementById("def").click(); // I want this for page 2. 
document.getElementById("abc").click();
var t=setTimeout(function(){document.getElementById("def").click();},3000)
等待时间为3秒。但我不喜欢我的方法。这种方法取决于另一个页面此时将被加载这一事实。有更好的方法吗?我是否可以检查第2页是否已加载,然后执行该操作


谢谢

当站点卸载时,javascript不再处于活动状态。您无法从单击链接的页面访问其他页面中的元素。或者您正在开发一个浏览器扩展?也许您在那里的某个地方运行了一个ajax调用?如果是这样的话,这可能会给您带来问题,因为ajax在默认情况下是异步的@Bergi,我正在使用chrome的快捷方式管理器来实现这一点。我在技术上可以做到这一点,但我不喜欢3000这个数字。JS是在什么环境下执行的?插件描述听起来像是书签。如果您可以访问chrome选项卡,则可以使用导航事件