window.location.href但地址栏发生了变化

时间:2010-09-24 01:34:55

标签: javascript dom redirect

出于某种原因,使用window.location.href不会更改用户地址栏中的网址。我有什么理由得到这种行为吗?

CODE

早些时候,我在这里发布了代码。但我看到我在一个框架中。对于碰巧遇到同样问题的人,window.top.location.href ='page.htm';会做的。

PS。抱歉没有提到框架方面。这是一个微小的,微妙的框架使用。如果我知道,我就不会问这个问题:)

感谢所有人!

3 个答案:

答案 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请求。

请参阅http://plixi.com/p/46770650

答案 2 :(得分:0)

您无法以编程方式更改地址栏(考虑网络钓鱼的可能性)。

您可以做的最好是使用window.location更改网址,即在那里导航用户。

地址栏改变这种方式的过程被抽象掉了:)