加入收藏 | 设为首页 | 我要投稿 | RSS中药方rss
中药方大全小图标
您当前的位置:首页 > 其他 > 网站日记

帝国二开中的动态加载jquery体会

提示: 手机抄药方--选中文字可生成二维码  来源:网络  作者: 未知

在帝国二开中,不开避免的要和jquery打交道。

但是,不知道客户的环境,也许他们已经加载过jquery,也许没有。


那就检查下,如果加载就算了。如果没有,就动态加载。


代码如下:

if(!(window.jQuery)) {
  var s = document.createElement('script');  
  var protocolStr = document.location.protocol;
  s.setAttribute('src', protocolStr+'//apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js');
  s.setAttribute('type', 'text/javascript');
  document.getElementsByTagName('head')[0].appendChild(s);
 }


实践发现,动态加载的jquery,不能执行window.onload事件:

$(function () { });

控制台会有错误,$没有定义。静态加载的jquery则没有这个问题。


无奈,使用

window.onload=function(){
    // 此处为代码
   }

加载。在这个函数的内部,是可以使用$对象的。


同时开发两个插件的时候,问题出来了,window.onload只认最后一次定义的,以前的统统覆盖无效。悲剧啊。


百般和度娘交流,采用了这样的方法:


if(window.addEventListener){
  window.addEventListener("load",jhcload,false);

}
else{
  window.attachEvent("onload",jhcload);
 
}

来代替,window.onload,问题得到解决。


一个完整的代码例子:

if(!(window.jQuery)) {
  var s = document.createElement('script');  
  var protocolStr = document.location.protocol;
  s.setAttribute('src', protocolStr+'//apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js');
  s.setAttribute('type', 'text/javascript');
  document.getElementsByTagName('head')[0].appendChild(s);
 }


if(window.addEventListener){
  window.addEventListener("load",jhcload,false);

}
else{
  window.attachEvent("onload",jhcload);
 
}


function jhcload(){
     
    if(!$('#msg_title').length){
        $('input[name="title"]').parent('td').append('<span id="msg_title">标题唯一性检测<\/span>');
    }
   
	$('input[name="title"]').blur(function(){
		var $user_val=$(this).val();
		this.value=this.value.replace(/[!!¥……*——+、#$%&'"\/\\=??。,《》<>·^`{|}~“”]|\s|\-|\(|\)|[\uff00-\uffff]/g,'');
		$.ajax({
			data:{
			   classid: $('input[name="classid"]').val(),
			   title: $('input[name="title"]').val(),
			   sid:Math.random(),
			   id:$('input[name="id"]').val()
			},
			type: "POST",
			url:"/e/extend/oneTitle/index.php",
			async:true,
			dataType:"json",
			success:function(data){
				$('#msg_title').html(data['text']);
				return false;
			},
			error:function(jqXHR){
			  	alert('检测标题重复时出现错误,请检查相关文件路径'.url);
				return false;
			}
		});	
	});
}


tags: 体会 返回顶部
推荐资讯
视频:田纪钧讲关节不痛的秘密、膝关节拉筋法
视频:田纪钧讲关节不
白露到了,你还好吗?
白露到了,你还好吗?
尿疗与断食
尿疗与断食
给风疹反复发作女孩的药方(组图)
给风疹反复发作女孩的
相关文章
栏目更新
栏目热门
  1. 帝国cms7.2后台信息列表页批量添加tags
  2. 帝国cms之批量替换字段值
  3. 帝国cms7.2改用百度编辑器
  4. 如何禁止内容关键字替换ALT和A标签中的关键
  5. 帝国cms百度主动推送插件支持分页推送
  6. 显示二维码
  7. 帝国cms插件大全
  8. 帝国cms获取当前页的地址
  9. 【帝国cms插件】之三级联动+伪静态
  10. 帝国cms之egetzy函数