由PHP分配的Javascript变量导致无限刷新

时间:2014-11-02 15:01:25

标签: javascript php

我有以下代码。

<?php $location=$_SERVER['REQUEST_URI']; ?>
<script>var location = <?php echo json_encode($location); ?>;</script>

此代码会导致无限量的浏览器刷新。如果我删除第二行,一切正常。我需要知道这个的潜在原因,因为我不知道在哪里搜索。没有Javascript正在使用当前名为location的变量。

1 个答案:

答案 0 :(得分:2)

变量location的名称与全局location对象发生冲突。

来自MDN的报价:

  

虽然Window.location只读位置对象,但您也可以为其分配DOMString。这意味着您可以使用window.location,就像在大多数情况下它是字符串一样:window.location = 'http://www.example.com'window.location.href = 'http://www.example.com'的同义词

由于全局变量是window对象的属性,location与此处的window.location相同,因此您告诉浏览器将当前页面替换为从分配了“新”地址(在这种情况下,这里的地址恰好相同)。

只需使用其他变量名称。