为什么文件名会被地址栏中的JavaScript函数替换?

Thi*_*key -1 html javascript browser web

一个本地的html文件,让我们说它的路径是/path/to/file.html.一开始就有以下内容.

<html>

 <head>

  <link rel="shortcut icon" href="logo.ico"/>
  <LINK href="1.css" rel="stylesheet" type="text/css" />
  <script src="1.js" type="text/javascript"> </script>

 </head>

<body class = "body_background">
.
.
.
Run Code Online (Sandbox Code Playgroud)

当尝试使用其完整路径在浏览器中打开它时:

文件名及其扩展名(file.html)将被JavaScript函数替换.

文件:///path/to/file.html

更改为以下内容:文件名及其扩展名由location位于的函数替换1.js.

file:/// path/to/function location(){ ...

JavaScript文件在开头有这个:

if(window.addEventListener) {

  window.addEventListener('load', location, false);

  }
else if (window.attachEvent) window.attachEvent('onload', location);
Run Code Online (Sandbox Code Playgroud)

这是发生在,FireFoxSafari不是Chrome通过.

Chrome页面上适当显示.

这个问题是给朋友的.

Dio*_*ane 5

location在某些JS实现中是一个保留字,如document.location.

请参阅:http://www.javascripter.net/faq/reserved.htm