如何将Javascripts放在QWebView的evaluatejavascript函数中进行评估

时间:2011-05-26 06:41:44

标签: javascript qt google-maps qwebview

编辑: 编辑太多: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 进行评估的方法是什么?

1 个答案:

答案 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));
}