日期:2014-05-16  浏览次数:20499 次

在360浏览器跟IE浏览器中有些JS代码不执行?
先发段代码片段:在firefox中可以运行,360跟IE下就不可以
var  dhxLayout = null, tree = null ,toolbar=null ,attachGrid1=null,isTooLoad=false,dhxWins= new dhtmlXWindows();
dhxLayout = new dhtmlXLayoutObject(document.body, "2u");
    dhxLayout.cells("a").setWidth(200);   
    dhxLayout.cells("a").setText("交换机列表");
    dhxLayout.cells("a").fixSize(true,true);
    tree = dhxLayout.cells("a").attachTree();
           //(5)
    toolbar = dhxLayout.cells("b").attachToolbar();
dhxLayout.cells("b").setText("");
toolbar.setIconsPath("${request.getContextPath()}/resources/toolbarXml/icons/");
toolbar.loadXML("${request.getContextPath() }/resources/toolbarXml/switches_toolbar.xml?rt=" + new Date().valueOf());
toolbar.attachEvent("onClick",function(id){
toolbar_Action(id);
      });

attachGrid1 = dhxLayout.cells("b").attachGrid();
        attachGrid1.setImagePath("${request.getContextPath()}/js/dhtmlxGrid/skins/");
        attachGrid1.setHeader("名称,内容,名称2,内容2");
        attachGrid1.setNoHeader(true);
        attachGrid1.enableEditEvents(false,false,false);
        attachGrid1.setInitWidths("100,*");  
        attachGrid1.init();

tree.setImagePath("${request.getContextPath()}/js/dhtmlxTree/imgs/");//1
setProgress(tree, "a");//2
tree.loadXML("${request.getContextPath()}/switches/switches_listTree?"+ new Date().valueOf());//3
然后把123几行挪到5处,在360IE会显示。然后有个问题来了 要写个方法
tree.attachEvent("onClick",function(id){
if(tree.getSelectedItemText()=="你登录已经超时!"&&id=="no_login"){
artDialog.tips("你登录已经超时,重新登录后再操作");

}else{
attachGrid1.clearAndLoad("${request.getContextPath()}/switches/show_switches/"+id);
}

    });这个方法放在那里都不行在360跟ie中。

------解决方案--------------------
attachEvent不支持 Mozilla系列(ie、360)
如果是Mozilla系列,需要用到addEventListener
------解决方案--------------------
attachEvent这个方法类库应该重写过了,没用过这个类库,自己找找有么有成功生成控件后的回调事件什么的,在这个事件中执行tree.attachEvent("onClick"的绑定