我有一个在FireFox 9.0.1中完美运行的网站。
在Chrome 16中,它发生了灾难性的失败。通过它们的错误太多了。
然而,要选择一个问题(并希望它是一个有助于阐明核心问题的线索),我有一些由Javascript驱动的按钮,只需将某人带到新页面即可。
这些按钮的代码非常简单:
var siteURL = "http://mywebsite.com/";
function goHome()
{
window.location = siteURL + "index.html";
}
在FireFox中,如果我单击执行此代码的按钮,我将被带到index.html。容易腻。
在Chrome中,如果我点击此按钮,我会收到一个404错误页面,上面写着:
在此服务器上找不到请求的网址/undefinedindex.html。
为什么这些浏览器的行为方式不同?
如何让Chrome播放?
根据评论中的要求,我将alert(siteURL);
放入函数中。
Firefox输出:
Chrome输出
未定义
答案 0 :(得分:1)
您不应使用window.location.
而是将网址分配给window.location.href
因此,应该是
function goHome()
{
window.location.href = siteURL + "index.html";
}
而且......你得到'未定义'的值,因为你可能没有为siteURL分配任何值,或者你忘了声明它。确保它确实指向您当前的根网址(如果您希望它)
答案 1 :(得分:1)
适用于Chrome 16:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.siteURL = "http://mywebsite.com/";
function goHome() {
console.log('moo?');
window.location.href = window.siteURL + "index.html";
}
</script>
</head>
<body>
<a href="#" onclick="goHome(); return false;">go home</a>
</body>
</html>
答案 2 :(得分:0)
如果所有浏览器的行为完全相同,我就会失业。
如果没有看到完整的代码,就无法确定究竟出了什么问题。
从片段abobe判断,必须有一些其他功能(与goHome
在同一范围内)将undefined
分配给siteURL
并在goHome
之前调用