为什么js代码在HTML文件里可以运行,写在js文件里被html文件调用之后却是无法运行了?

JavaScript019

为什么js代码在HTML文件里可以运行,写在js文件里被html文件调用之后却是无法运行了?,第1张

为什么js代码在HTML文件里可以运行,写在js文件里被html文件调用之后却是无法运行:

1.立即执行的JS代码会受位置的影响。

2.假如你把JS外部引用放入HEAD里,而你在该JS文件中试图直接访问DOM中的一个BODY的子元素,就可能产生错误,因为该JS在执行时,浏览器还没有准备好BODY的DOM。

3.如果是这样,你可以把JS引用移到所有它要访问元素标签之后,这样就不会出错了。

JS:

JS即Javascript,Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

页面上引用的js文件中函数不能执行的原因:找不到函数,会报错或undefined;语法错误;没有引用js文件等。

具体的解决方法:

1、函数应当直接写在页面即可调用;

2、确保有引用js文件,如果引用了的话,也是可以调用的。

引用方式,可以直接拖拽(因为路径准确),也可以自己写,引用脚本:<script src="Scripts/JScript.js" type="text/javascript"></script>

3、引用的js文件一定要在调用之前,否则就找不到函数了,会报错或undefined。

调用页面:

<script src="Scripts/JScript.js" type="text/javascript"></script>

    <script type="text/javascript">

        aa()

    </script>

Script.js中代码:

  

  function aa() {

        alert("js文件掉用")

    }

另外:在BS项目中,某个aspx页面需要引用外部:脚本文件,通过在页面head节<script language="" src="">方式引用指定的js之后,仍然无效。

通过alert方式调试,发现是由于js文件编码与js文件内容不符。由于js文件中包含中文注释,所以需要设置js文件为可识别中文的gb2312编码。其方法如下:

在.net中通过这种方式引用js文件

<script type="text/javascript" src="setday0.js"></script> 

然后在页面中调用setday0.js文件中的方法往往会出错!但是如果把setday0.js文件的内容直接放到该页面中来又一点问题也没有。就在页面中重写js代码。

这个问题是由于.net中的text编码所引起的,需要把setday0.js文件保存为UTF-8或者其他Unicode编码方式,问题就迎刃而解。原来的文本编码为gb2312,因为其中有汉字。

如何进行编码转换?

1、用记事本打开,保存的时候选择Unicode编码;

2、直接在vs中选择另存为,保存按钮右边有个小箭头,点一下,然后选择编码方式再保存就ok。