【发布时间】:2011-06-09 18:10:52
【问题描述】:
我有这个简单的代码,在每个浏览器中都可以正常工作,但在 IE(每个版本)中都没有。
window.setTimeout('window.location = \"http://www.domain/modules/yobilab/copyright/classes/GO_overview.php?refNumb=".$RefNumb."\"', 3000);
return false;
在每个浏览器中,它都会转到正确的链接
在 IE 中,它还包括它来自的链接,所以它会变成这样:
http://www.domain/PAGEWHEREIWAS/modules/yobilab/copyright/classes/GO_overview.php?refNumb=something
为什么会这样?
它显然会产生 NOT FOUND 错误。
【问题讨论】:
-
在我看来并不“简单”。
\"http://www.domain/modules/yobilab/copyright/classes/GO_overview.php?refNumb=".$RefNumb."\"在 JavaScript 中到底是什么意思? -
对不起那也是PHP的组合。只看 javascript 代码,忘记 PHP
-
没有。将 PHP 完全抽象出来,这样我们就可以确定它不会导致您的问题。并在jsfiddle.net 上提供一个现场测试用例来演示该问题。
-
这看起来令人不安,就像您正在使用 PHP 生成一个 JS 字符串,并且该 JS 字符串被传递给
setTimeout以成为evaled。嘎嘎!如果您要在 PHP 中动态构建 URI,请将其存储在变量中,以便更具可读性。如果你打算使用setTimeout,那么传递给它一个函数,而不是一个字符串。 -
你试过window.location.href = "url/to/goto"吗?
标签: javascript internet-explorer