1、为什么优化?
a、很多弹出窗口导致页面自动禁用javascript
b、浏览器不支持
2、两种不好的方法。
a、”javascript:伪协议“(一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议,非标准化的协议。)
如:通过一个链接调用test()函数。
<a href="javascript:test('http://www.baidu.com/');">Test</a>
为什么不好?--这条语句在支持伪协议的浏览器中正常运行,但如果支持伪协议却禁用了javascript,语句将会无效。
b、内嵌的时间处理函数
如:将onclick()事件内嵌
<a href="#" οnclick="test('http://www.baidu.com'); return false;">Test</a>
为什么不好?--return false虽然不会真的被打开,#是指向当前文档的开头,把href的属性值设为#表示指向一个空链接。但如果支持伪协议却禁用了javascript,语句将会无效。
3、优化
a、href变成真实的链接,这样即使禁用,也可以跳转<a href="http://www.baidu.com" οnclick="test(this.href); return false;">Test</a>
b、分离javascript,如果javascript是从HTML的<head>部用<script>做标签调用的,它将在HTML文档之前加载在浏览器的。
将打包的函数这样写:
A,把这个链接的href属性值传递给test()函数
B,取消这个链接的默认行为,不让这个链接把访问者带到当前窗口。
window.onload = function (){
if(!document.getElementByTagName) return false;
var links = document.getElementsByTagName("a");
for(var i=0;i<links.length;i++){
if(links[i].length.getAttribute("class")=="test")
link[i].onclick = function(){
test(this.getAttribute("href"));
return false;
}
}
}
4、压缩脚本,加快加载速度