编辑: 编辑太多:doh:
这次我发现了问题。我将Javascript代码传递给evaluatejavascript func的方式存在缺陷。 QWebView。
使用Google地图的API,当我点击附加到持有以下代码的插槽的pushButton时
this->page()->mainFrame()->evaluateJavaScript (QString ("Open(%1,2)").arg ( point.x ()).arg (point.y ()) );
显示与相关位置有关的地图。
现在,如果我想将标记添加到特定坐标,我会这样做:
this->page()->mainFrame()->evaluateJavaScript (QString ("addMarker (%1, %2)").arg (point.x ()).arg (point.y ()) );
此代码不会执行。有什么想法吗?
除此之外,将用户定义的函数添加到 evaluateJavaScript 进行评估的方法是什么?
答案 0 :(得分:1)
终于找到了答案!
任何必须从函数 evaluateJavaScript 调用的Javascript函数都应该在C ++源代码的html文件(包含)中定义,如下所示:
现在我没有创建新的添加标记功能,而是将其代码添加到下面定义的Open函数中:
var map;
function initialize()
{
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("map"));
map.setCenter( new GLatLng(0,0),1 );
}
}
function Open (x,y)
{
map.setCenter (new GLatLng(x,y), 13);
var point = new GLatLng (x,y);
map.addOverlay (new GMarker(point));
}