JQuery的奇怪问题;
来源:互联网 发布:淘宝未激活官换机骗局 编辑:程序博客网 时间:2024/05/16 17:00
今天公司又有一个新需求,对于客户,可以进行设置 黑名单 客户的操作;
并且,对于所有的显示有客户名称的页面,均必须添加 图标提示 或者 红色文字提示;
这个比较晕菜,很多页面都显示有客户名称,但黑名单是新的信息,原来的查询没有;
找出所有的页面来一个个修改?觉得这种做法太傻了;
想了另外一个办法,所有的页面均会加载一个脚本 script_object.js,于是就在这个脚本上做文章了;
想法是这样的, 动态加载 jquery 脚本库,动态加载 ajax库;
创建函数,对于传入的客户名称选择字符串,利用ajax库进行数据库判断,如果是黑名单客户,动态添加图标 或者 红色文字提示;
想法很好,代码也写的很快,放上去后,奇怪的问题发生了,在IE8上,调试时不停的报jquery的脚本错误,但最后能够显示图标;
不调试时,也有脚本错误,但图标显示不出来;
代码如下,呵呵,有些长,不过还比较容易看;
/**加载脚本文件, judge:判断条件,脚本可能已经加载,此时不用加载该脚本了;url - script的url;
callback - 脚本加载完成时候的回调函数:
**/
function loadScriptX(judge, url, callback) {
if (!judge) { /**脚本未加载**/
//url = url + "?" + Math.random();
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState) {//IE
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onreadystatechange = null;
callback();
}
};
}
else {//Others
script.onload = function () {
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
}
else { /**已经加载**/
callback();
}
}
var loadedFullScript = false;
/****顺序动态加载脚本文件****/
function serialLoadScript(scriptInfo, iIndex) {
var index = iIndex;
if (!iIndex) index = 0;
if (index >= scriptInfo.length) {
loadedFullScript = true;
return;
}
loadScriptX(scriptInfo[index].judge, scriptInfo[index].url, function () {
serialLoadScript(scriptInfo, ++index);
});
}
serialLoadScript(new Array({judge:window.$, url:"/crm_vss/SalesOpp/jquery-1.4.2.js"},
{judge:window.addNamespace, url:"/crm_vss/SalesOpp/core.js"},
{judge:window.crm_vss02, url:"/crm_vss/SalesOpp/ajaxHandle.js"}));
/****添加黑名单提示***/
function addHmdTips(khmcselect, tipsselect){
if (!loadedFullScript ) return;
window.clearInterval(addHmdTipsHandle);
var khmcsel = $(khmcselect);
var tipssel = $(tipsselect);
khmcsel .each(function(index){
var akhmc= $(this).val();
if (!akhmc) akhmc= $(this).text();
var hmdquery = crm_vss02.SalesOpp.ContactHandle_Ajax.isHmd(new Array("khmc", akhmc)).value;
if (hmdquery){
var aimg = "<img src='/crm_vss/image/pointblack.gif' border='0' title='"+decodeURIComponent('%e9%bb%91%e5%90%8d%e5%8d%95')+"'>";
$(tipssel [index]).append(aimg);
}
});
}
var addHmdTipsHandle ;
document.attachEvent("onreadystatechange", function(){
//这儿必须用定时器,否则,上面的脚本还没有正确加载;
addHmdTipsHandle = window.setInterval(function(){ addHmdTips(".khdm","#dg td[cellIndex=3]:gt(0)"); }, 100);
});
然后发现,错误的行代码发生在 jquery-1.4.2.js的2828行,
if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
用调试器一看,Expr.leftMatch[ type ]返回的对象居然没有 exec方法,然后脚本就不停的出错了;
用 try 。。。 catch...把整段包含,呵呵,居然运行正常通过了;
- JQuery的奇怪问题;
- jquery ajax 与java奇怪的问题
- jquery.form.js 遇到的奇怪问题
- jquery-mobile在VPN的奇怪问题
- jquery get ajax 重复提交的奇怪问题
- Jquery根据id获取属性的一个奇怪问题
- jQuery学习笔记——奇怪的问题
- 奇怪的malloc问题!
- 奇怪的编译问题
- 奇怪的问题。
- 又一奇怪的问题?
- 一个奇怪的问题
- 奇怪的JNI问题
- 奇怪的问题
- 奇怪的问题
- IMPLEMENT_DYNCREATE的奇怪问题
- DotMSN的奇怪问题
- 一些奇怪的问题
- “Terminate Server”; . setqt4env; ./helloQT4 -qws;
- hadoop相关软件下载
- 解决libreoffice打开文件乱码
- 删除Oracle表中的重复行
- Dinic模板
- JQuery的奇怪问题;
- 网页收藏
- 基本类型与引用类型区别
- C3沙龙上海第十次活动总结
- 简单得到系统时间
- 日志设计
- jsp使用javabean<jsp:useBean>
- linux线程信号
- nxp