刚刚开通留言板后,感觉有点不对! :p
原来由于我博客上有大量其他站的引用,比如引用FEEDSKY的订阅功能~
使用gravatar的头像支持功能等.
这些引用使得我博客载入要花费大量的时间,这样window.onload就要在这些完全载入后才能执行!
这样,访客在没有完全载入完全时候看到的按钮还是“提交评论”!
这个方法需要改进!
改进这个方法,首先想到的是使用JQuery的$(document).ready();来实现!
于是修改代码为:
1
2
3
| $(document).ready(function(){
$("#submit").attr("value","提交留言");
}); |
测试,运行!没有得到预期结果!提交按钮的值没有发生变化!这是为什么呢?
再次测试以下代码:
1
2
3
| $(document).ready(function(){
alert("define!");
}); |
页面没有任何反应!这表明$(document).ready()根本没有执行!
查看页面的代码,发现页面同时引用了JQuery和prototype!
这2个库同时定义了$(),那么这2个库同时引用肯定会产生一些错误!
于是下载WP自带的JQuery库和JQuery官网的JQuery.js进行以下代码的测试!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>T</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#tb").attr("value","提交留言");
});
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="submit" id="tb" name="Submit" value="提交评论" />
</label>
</form>
</body>
</html> |
测试结果是:使用WP自带的JQuery.js这些代码不能正确执行,而使用JQuery官方下载的JQuery.js却能正确运行
得到我想要的结果!那么,WP自带的JQuery是经过了一些修改的??
为了再次验证这想法,于是修改服务器上的JQuery.js为JQuery_wp.js
上传JQuery官方下载的JQuery.js!这个时候,发现一直使用的CodeBox的代码滑动折叠功能无法实现了
lightbox也不能实现,而这些都是依靠JQuery来实现的!
这样,WP自带的JQuery是经过了修改的结论貌似更加的确定了!
那么WP自带的JQuery是修改了什么呢?由于JQuery和prototype相冲突的是$()!
而且通过上面的试验也证明了是JQuery通过了修改,那么修改的一定是$(),(有点啰嗦~~~)
于是查看WP和现在使用的一些插件的JS代码,发现了一个非常特别的调用jQuery(),觉得很可疑!
试着把$()换成JQuery并用WP自带的JQuery.js运行原来的测试代码:
非常高兴,代码测试成功!
于是修改代码为:
1
2
3
4
5
| <script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#submit").attr("value","提交留言");
});
</script> |
测试,OK!通过~~~
写 “为WordPress增加留言板”和“为WordPress增加留言板【续】.”这2篇文章主要是为了帮大家解决下使用WP中的一点小问题!
虽然最后实现了我想要的,不过总是觉得解决方法不正宗!
决定什么时候看看WP的插件开发了~