我有以下代码。
<?php $location=$_SERVER['REQUEST_URI']; ?>
<script>var location = <?php echo json_encode($location); ?>;</script>
此代码会导致无限量的浏览器刷新。如果我删除第二行,一切正常。我需要知道这个的潜在原因,因为我不知道在哪里搜索。没有Javascript正在使用当前名为location的变量。
答案 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
相同,因此您告诉浏览器将当前页面替换为从分配了“新”地址(在这种情况下,这里的地址恰好相同)。
只需使用其他变量名称。