为了网站页面的“瘦身”,于是将一些通用的代码放进js里面,然后就总是出现了问题。下面是通过反复调试得到的原因与解决方案,在此记录一下以供参考交流。
问题描述
JavaScript代码放在网页页面时,功能效果是正常的。但是当放在脚本里然后引用进来时,功能就失效了。
例如
网页里代码如下:
<script type="text/javascript">
function nTabs(tabObj, obj) {
var tabList = document.getElementById(tabObj).getElementsByTagName("li");
for (i = 0; i < tabList.length; i++) {
if (tabList.id == obj.id) {
document.getElementById(tabObj + "_Title" + i).className = "active";
document.getElementById(tabObj + "_Content" + i).style.display = "block";
} else {
document.getElementById(tabObj + "_Title" + i).className = "normal";
document.getElementById(tabObj + "_Content" + i).style.display = "none";
}
}
}
</script>
但是当保存为tab.js,然后如下方式引用时,就没有效果了
<script language='javascript' src='tab.js'>
原因与解决方案
其实这里可能有两个可能的原因:
一个是当你把这段代码放到网页的后面时,就会发现功能有效了。
这里放在后面是因为存在一个document ready 的问题。
从网络打开html文档总是有一个延迟的问题,在运行你的script程序的时候,文档可能没有完全加载。
第二个可能就是编码的问题。如果你测试一下,在你的脚本文件(如tab.js)里输出一段文字,如加入代码:
document.writeln("志文工作室");
然后再刷新网页,如果没有正常出现文字,而是出现了乱码,那么就应该是编码的问题。这里你可以用网页编辑工具如dreamweaver、editplus等新建js文件,然后复制进代码,问题即可解决。
乱码了
有关文件调用出现乱码的问题,有时候你用文本文件打开这个js文件,然后“另存为…”,选择UTF-8编码,就可以解决。
[quote=Elten]补充一点,外部调用js正确写法是
<script type="text/javascript" src="***.js"></script>
如果缺少最后的</script>也是不会被解释的
补充一点,外部调用js正确写法是
<script type="javascript" src="***.js"></script>
如果缺少最后的</script>也是不会被解释的
好像不是经常用到哦~~
呵呵,,这个俺就不懂了.