出于某种原因,使用window.location.href
不会更改用户地址栏中的网址。我有什么理由得到这种行为吗?
CODE
早些时候,我在这里发布了代码。但我看到我在一个框架中。对于碰巧遇到同样问题的人,window.top.location.href ='page.htm';会做的。
PS。抱歉没有提到框架方面。这是一个微小的,微妙的框架使用。如果我知道,我就不会问这个问题:)
感谢所有人!
答案 0 :(得分:2)
window.top.location.href ='home.html'为我改变了地址栏,因为我不知不觉地陷入了困境。
感谢Stack Overflow至少确认我得到的行为是不寻常的。
答案 1 :(得分:1)
您可以使用框架集执行此操作,无论用户导航到何处,地址栏都不会更改。
但正如已经提到的,即使是Internet Explorer - 因为IE7-专注于用户以防止这样的事情,用户有权知道他在哪里上网 - 这是一个安全问题。
想象一下,您来到一些看起来干净且友好的网站,并且网站会将您重定向到一系列网络钓鱼网站,而您或浏览器安全人员都不会注意到它。网站所有者可以获取您的所有私人信息,例如您的剪贴板内容或地理位置数据,当您放心时,网站所有者会清空您的银行帐户。只是一个例子。
除了你的下面的答案,我在Firefox 3.6上尝试了window.location.href,它按预期工作。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>urlRefresh</title>
</head>
<body>
<input type="button" value="changeAdress" id="changeAdress" />
<script>
document.getElementById('getValues').onclick = function() {
window.location.href = "http://www.bing.com";
}
</script>
</body>
</html>
如果单击按钮,则更改地址JavaScript会通过浏览器向所需网站发出GET请求。
答案 2 :(得分:0)
您无法以编程方式更改地址栏(考虑网络钓鱼的可能性)。
您可以做的最好是使用window.location
更改网址,即在那里导航用户。
地址栏改变这种方式的过程被抽象掉了:)