4

我想用 javascript 在 html 中的两个页面之间进行切换,但是当我用 更改时window.location,这句话之后的代码会继续执行。

因此,例如,当我这样做时,getElementById()对它的调用无法识别元素,因为页面仍在加载。

function myFun(){

    // ...

    window.location = 'page.html';

    // ... wait until page.html is loaded

}

我怎样才能等到页面加载以避免这个问题?

4

3 回答 3

12

当你这样做

window.location = 'page.html';

您将浏览器中包含代码的页面替换为myFun新页面。该指令后面的代码无法执行。

如果您想执行它,并且仅在该更改页面之后(但我不明白这一点),那么您可能会这样做

document.onload = function(){ window.location = 'page.html'; };
于 2013-03-17T16:13:07.333 回答
2

您可以使用 jQuery document.ready或者您可以像这样创建自定义绑定。如果你使用 jQuery。

   $(document).ready(function() {
        window.location = 'page.html';
    });
于 2013-03-17T16:14:53.367 回答
2

做完之后不能在自己的页面中执行代码window.location = 'page.html';。您的页面将被新页面替换,当前页面中的代码将不再存在。

加载到当前窗口后执行某些代码的唯一方法page.html如下:

  1. 将其加载到 iframe 或其他窗口中,并监视 iframe 或窗口何时完成加载。这样,您当前的代码就会保留下来,不会被替换。
  2. page.html当它完成加载并从那里触发您想要的操作时,有一些代码可以监控。
于 2013-03-17T16:15:19.917 回答