Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QWebView没有';t加载外部javascript(谷歌图表)_Javascript_Html_Qt_Webview_Qwebview - Fatal编程技术网

QWebView没有';t加载外部javascript(谷歌图表)

QWebView没有';t加载外部javascript(谷歌图表),javascript,html,qt,webview,qwebview,Javascript,Html,Qt,Webview,Qwebview,我想做的是根据用户需要生成“自定义”地图。对于Im,基本上是在html中包含两个javascript,另一个用于所选信息 因此,我创建了QWebView来呈现HTML(每个请求都会自动生成),如下所示: GeoXML::GeoXML(QWidget *parent) : QMainWindow(parent), ui(new Ui::GeoXML) { ui->setupUi(this); QWebSetting

我想做的是根据用户需要生成“自定义”地图。对于Im,基本上是在html中包含两个javascript,另一个用于所选信息

因此,我创建了QWebView来呈现HTML(每个请求都会自动生成),如下所示:

 GeoXML::GeoXML(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::GeoXML)
    {
        ui->setupUi(this);


        QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, true);
        QString excRoute = QDir::currentPath ();


        QFile file(excRoute+"/index.html");
        if(!file.open(QIODevice::ReadOnly)) {
            QMessageBox::information(0, "error", file.errorString());
        }
        QString html= "";
        QTextStream in(&file);
        html = in.readAll();
        file.close();


        ui->webView->setHtml(html, QUrl("file:///"+excRoute+"/"));

    }
HTML:

<html>
  <head>
    <script type='text/javascript' src='res/loader.js'></script>
    <script type="text/javascript" src="res/jsapi.js"></script>
    <link rel="stylesheet" type="text/css" href="res/index.css"/>

    <script type='text/javascript'>
     google.charts.load('current', {'packages': ['geochart']});
     google.charts.setOnLoadCallback(drawMarkersMap);

      function drawMarkersMap() {
      var data = google.visualization.arrayToDataTable([
        ['Country', 'Poblacion'],
        ['Costa Rica', 'Norte de Costa Rica'],
        ['Mexico', 'Sur de Mexico'],
        ['Nicaragua', 'Nicaragua']
      ]);

      var options = {
        sizeAxis: { minValue: 0, maxValue: 100 },
        region: '013', // Western Europe
        displayMode: 'regions',
        colorAxis: {colors: ['#e7711c', '#4374e0']} // orange to blue
      };

      var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
      chart.draw(data, options);
    };

    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 900px; height: 500px;">
    </div>
  </body>
</html>

load('current',{'packages':['geochart']});
google.charts.setOnLoadCallback(drawMarkersMap);
函数drawMarkersMap(){
var data=google.visualization.arrayToDataTable([
['Country'、'Poblacion'],
[“哥斯达黎加”、“哥斯达黎加北部”],
[“墨西哥”、“墨西哥南部”],
[“尼加拉瓜”、“尼加拉瓜”]
]);
变量选项={
sizeAxis:{minValue:0,maxValue:100},
地区:'013',//西欧
显示模式:“区域”,
颜色轴:{颜色:['#e7711c','#4374e0']}//橙色到蓝色
};
var chart=new google.visualization.geograpart(document.getElementById('chart_div'));
图表绘制(数据、选项);
};
它确实呈现了我的页面。我看到了css中的红色背景色,但是我看不到地图。如果我在chrome中打开html,它会工作,但在qt的QWebView中不会

我在qrc中也包含了这两个js文件,将它们作为外部文件(托管在goolges网站上)和localy(如下面的代码片段)放在一起,但都不起作用,也没有什么运气

此外,决议草案内容如下:

使用此方法时,WebKit假定外部资源 JavaScript程序或样式表采用UTF-8编码,除非 另有规定。例如,外部脚本的编码 可以通过HTML脚本标记的charset属性指定。 或者,编码也可以由web服务器指定

这让我觉得它应该在默认情况下渲染我的地图