0

我正在开发一个 mvc .net 应用程序,并且正在使用 jsgantt 来显示甘特图。我使用 xml 文件从数据库中提取数据。问题是当我使用 Chrome 作为导航器时它不显示图表但是使用 Firefox 和 IE 它可以正常工作

下面是读取xml文件的代码(默认代码)

JSGantt.parseXML = function(ThisFile,pGanttVar){
    var is_chrome = navigator.userAgent.toLowerCase().indexOf('Chrome') > -1;   // Is this Chrome 

    try { //Internet Explorer  
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        }
    catch(e) {
        try { //Firefox, Mozilla, Opera, Chrome etc. 
            if (is_chrome==false) {  xmlDoc=document.implementation.createDocument("","",null); }
        }
        catch(e) {
            alert(e.message);
            return;
        }
    }

    if (is_chrome==false) {     // can't use xmlDoc.load in chrome at the moment
        xmlDoc.async=false;
        xmlDoc.load(ThisFile);      // we can use  loadxml
        JSGantt.AddXMLTask(pGanttVar)
        xmlDoc=null;            // a little tidying
        Task = null;
    }
    else {
        JSGantt.ChromeLoadXML(ThisFile,pGanttVar);  
        ta=null;    // a little tidying 
    }
}

有谁知道如何解决这个问题?问候

4

2 回答 2

0
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;   // Is this Chrome 
    var is_safari = navigator.userAgent.toLowerCase().indexOf('safari') > -1;   // Is this safari 
    var is_mozila = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;   // Is this mozila 
    var is_Opera = navigator.userAgent.toLowerCase().indexOf('opera') > -1;   // Is this opera 

if(is_safari==true)
{var is_chrome= is_safari;}
else if(is_mozila==true)
{var is_chrome= is_mozila;}
else if(is_Opera==true)
{var is_chrome= is_Opera;}


try { //Internet Explorer   
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

    }
catch(e)
  {
    try { 

        //Firefox, Mozilla, Opera, Chrome etc. 
        if (is_chrome==false) { xmlDoc=document.implementation.createDocument("","",null); }
        //if (is_safari==false) { xmlDoc=document.implementation.createDocument("","",null); }
    }
    catch(e) {
        alert(e.message);
        return;
    }       
}

if (is_chrome==false) {     // can't use xmlDoc.load in chrome at the moment
    xmlDoc.async=false;
    xmlDoc.load(ThisFile);      // we can use  loadxml
    JSGantt.AddXMLTask(pGanttVar);
    xmlDoc=null;            // a little tidying
    Task = null;
}
else {
    JSGantt.loadXML(ThisFile,pGanttVar; 
    ta=null;    // a little tidying 
}
于 2013-07-16T06:26:53.073 回答
0

我会检查jsGanttImproved,它适用于 Chrome 和所有主要浏览器。此外,它不需要任何额外的库,而且是免费的。

于 2017-01-09T04:05:15.707 回答