【发布时间】:2012-01-27 05:41:32
【问题描述】:
我有一个在 FireFox 9.0.1 中完美运行的网站。
在 Chrome 16 中,它发生了灾难性的失败。错误太多,无法全部解决。
但是,要从一个问题开始(并希望它是有助于阐明核心问题的线索),我有一些由 Javascript 驱动的按钮,可以简单地将某人带到一个新页面。
这些按钮的代码非常简单:
var siteURL = "http://mywebsite.com/";
function goHome()
{
window.location = siteURL + "index.html";
}
在 FireFox 中,如果我单击执行此代码的按钮,我会转到 index.html。轻松愉快。
在 Chrome 中,如果我点击此按钮,我会收到一个 404 错误页面,上面写着:
在此服务器上找不到请求的 URL /undefinedindex.html。
为什么这些浏览器的行为不同?
如何让 Chrome 一起玩?
根据 cmets 的要求,我将alert(siteURL); 放入函数中。
Firefox 输出:
Chrome 输出
未定义
【问题讨论】:
-
全球
siteURL从何而来?您应该调试一下为什么siteURL在 chrome 中未定义。 -
在分配给
window.location之前将'alert(siteURL);'放入该函数并告诉我们它打印的内容。 -
另外,你为什么要使用 Javascript 来做一些
<a>会免费为你做的事情? -
我想你会发现 Chrome 会先进行连接以获取
"undefinedindex.html",但随后会假设前面有一个"/",因为该字符串不包含路径。 (你可以通过说window.location="index.html";来测试。)所以不要担心斜线,担心为什么siteURL是未定义的。 -
@xdazz:是的,我可以并且愿意,但是 Firefox 怎么可能认为它已经定义而 Chrome 没有?变量是否已定义,不是吗?这不是任何一个浏览器的两组代码,而是完全相同的代码,那么为什么浏览器会以不同的方式看待同一个变量呢?
标签: javascript firefox google-chrome