jQuery作为目前最流行的JS库,许多插件都会用到,但是如果同时启用了这些插件,要么是多次加载jQuery导致页面速度变慢,要么引起冲突导致代码失效。
动态加载js
所以就写了一小段代码来避免jQuery冲突。
if(typeof(jQuery) == "undefined") { document.write('<script src="wp-content/plugins/fancy-captcha/captcha/jquery-1.6.2.min.js"/>'); }首先判断是否已经定义过jQuery,如果未定义,则动态加载jQuery库。
但是这个代码是异步执行的,也就是说,在加载jQuery库的同时,主页面的脚本继续运行,如果用以上的方法,那下面的代码将得不到预期的效果。
leo108's blog
参考了SyntaxHighlighter的动态加载代码之后,我修改的代码如下:
jQuery
if(typeof(jQuery) == "undefined") { var script = document.createElement('script'), script.src = "wp-content/plugins/wg-toolbar/js/jquery.js"; script.type = 'text/javascript'; script.language = 'javascript'; script.onload = script.onreadystatechange = function() { if (!this.readyState this.readyState == 'loaded' this.readyState == 'complete') { //这里放你的代码 script.onload = script.onreadystatechange = null; } } document.body.appendChild(script); }WordPress插件编写技巧——避免jQuery冲突
在新增的script标签设置了一个监听函数,当脚本加载完毕就执行此代码。
推酷是个无耻的网站