如何将参数传递给evaluateJavaScript函数?

如何将参数传递给evaluateJavaScript函数?,javascript,c++,qt,qwebview,Javascript,C++,Qt,Qwebview,这导致: “TypeError:表达式‘centerPointFileName.split’[undefined]的结果不是函数。第65行来源:file:///.../index.html" 函数constructFileName(在Javascript中)如下所示: for (int i = 0; i < centerPointsList.size (); i++) { QVariant holdInformation = map->page ()->mainFram

这导致:

“TypeError:表达式‘centerPointFileName.split’[undefined]的结果不是函数。第65行来源:file:///.../index.html"

函数
constructFileName
(在Javascript中)如下所示:

for (int i = 0; i < centerPointsList.size (); i++)
 {
   QVariant holdInformation = map->page ()->mainFrame ()->evaluateJavaScript (QString ("constructFileName (%1)").arg (centerPointsList [0].toFloat ()));
函数构造函数文件名(centerPointFileName)
{
var removespace=centerPointFileName.split(“”);
var fileNameWithoutSpaces=“”,i;
对于(i=0;i
根据您的更新,JavaScript函数需要一个字符串参数。最简单的方法如下所示:

function constructFileName (centerPointFileName)
 {
   var removeSpaces = centerPointFileName.split (" ");
   var fileNameWithoutSpaces = "", i;
   for (i = 0; i < removeSpaces.length; i++)
       fileNameWithoutSpaces = fileNameWithoutSpaces + removeSpaces [i];

但是,一般来说,这并不是完全安全的-如果插值参数
%1
包含反斜杠、双引号或其他特殊符号,则需要首先对其进行转义。我无法评论应该如何进行转义,因为我从未使用过Qt:)

您是否在寻找
QString(“constructFileName(%1)”。arg(centerPointsList[0].toFloat())
?@DCoder请查看更新。
function constructFileName (centerPointFileName)
 {
   var removeSpaces = centerPointFileName.split (" ");
   var fileNameWithoutSpaces = "", i;
   for (i = 0; i < removeSpaces.length; i++)
       fileNameWithoutSpaces = fileNameWithoutSpaces + removeSpaces [i];
QString info = QString("constructFileName('%1')").arg(centerPointsList[i].toFloat());
QVariant holdInformation = map->page()->mainFrame()->evaluateJavaScript(info);