QWebView中的evaluateJavaScript不调用javascript函数

时间:2012-04-30 12:58:16

标签: c++ qt google-maps google-maps-markers qwebview

我有以下问题:我在QWebView(谷歌地图)的代码中加载地图格式的HTML文件。在这个HTML文件中,我定义了一个javascript函数,它应该在指定的协调下在地图上添加一个带标记的标记。这是代码:

JavaScript函数:

function addLMarker(lat, lng, label) {
    var marker = new MarkerWithLabel({
        position: new google.maps.LatLng(lat, lng),
        draggable: false,
        raiseOnDrag: false,
        map: map,
        labelContent: label,
        labelAnchor: new google.maps.Point(0, 0),
        labelClass: "labels",
        labelStyle: {opacity: 0.75}
    });
    markers.push(marker);
    return true;
}

C ++函数:

QString SCRIPT_ADDMARKERWITHLABEL = tr("addLMarker(%1, %2, \"%3\")");
void addMarkerWithLabel(QPointF pos, QString label) {
    page()->mainFrame()->evaluateJavaScript(SCRIPT_ADDMARKERWITHLABEL.arg(pos.x()).arg(pos.y()).arg(label));
}

我确信从我的应用程序中正确调用了JS函数,但它对我的QWebView框架没有影响。当我在浏览器中调用此函数时,它会正确执行并在给定位置的地图上放置一个标记。问题出在哪儿?我错过了什么吗?

修改 它突然开始工作了。我意识到功能代码没有正确执行(尽管在浏览器中工作)所以我打开了DeveloperExtras,所以我可以在QWebView中检查JS的运行情况。我只是将这个:QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);粘贴到我主窗口的构造函数中,javascript代码开始工作。删除此行后,它仍然继续工作。我不会称之为解决方案,但是,它以某种方式对我有用。

0 个答案:

没有答案