QWebView没有';t加载外部javascript(谷歌图表)
我想做的是根据用户需要生成“自定义”地图。对于Im,基本上是在html中包含两个javascript,另一个用于所选信息 因此,我创建了QWebView来呈现HTML(每个请求都会自动生成),如下所示: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
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服务器指定
这让我觉得它应该在默认情况下渲染我的地图