各种自定义变量名(如CreateComent)在内联javascript中被覆盖,但在外部js中不被覆盖。为什么?
我有这样的代码各种自定义变量名(如CreateComent)在内联javascript中被覆盖,但在外部js中不被覆盖。为什么?,javascript,variables,scope,Javascript,Variables,Scope,我有这样的代码 <div id="loadCommentBestComment" style="cursor:pointer" onclick="createComment('af0532_$dvkpo6420')">load the most useful comment.</div> 加载最有用的注释。 问题是我在单击它时,没有执行任何操作,甚至没有调用函数createComment()。几个小时试图弄清楚发生了什么,但什么也没有。然后尝试将createComme
<div id="loadCommentBestComment" style="cursor:pointer" onclick="createComment('af0532_$dvkpo6420')">load the most useful comment.</div>
加载最有用的注释。
问题是我在单击它时,没有执行任何操作,甚至没有调用函数createComment()。
几个小时试图弄清楚发生了什么,但什么也没有。然后尝试将createComment的名称更改为另一个名称,如createCommentAlias(),一切正常。
这不是第一次发生这种情况,我以前也遇到过这种奇怪的行为。另一个例子是,名称nextSibling是Dom元素的一种方法,因此通常可以用作var nextSibling,但在内联js中,它再次被其他内容覆盖。同样,只有在js是内联的情况下才会发生这种情况。
所以我想知道这些变量是什么,它们来自哪里,并且可能有一个它们的列表,这样我就不会再使用这些名称。问题是,既然您使用了,那么您的全局函数
window.createComment
…被…笼罩着
Document.prototype.createComment
此行为的解释如下所示:
词汇环境范围
- 重命名你的函数
函数createComment{
var div=document.getElementById('loadComment');
div.style.left=“200px”;
div.style.color=“红色”;
}
#加载注释{ 位置:绝对位置; }
相关:。lool