gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:49:27 31 4
gpt4 key购买 nike

for (int i = 0; i < centerPointsList.size (); i++)
{
QVariant holdInformation = map->page ()->mainFrame ()->evaluateJavaScript (QString ("constructFileName (%1).arg (centerPointsList[0].toFloat())"));
QList <QVariant> allListObj = holdInformation.toList ();
QList <QVariant> fileNamesList = allListObj[0].toList ();

std :: cout << fileNamesList[0].toFloat() << "================= \n";

}

这导致:

"SyntaxError: Parse error on line:1 Source:undefined"
Segmentation fault

我猜测错误出在我将列表项传递给函数 evaluateJavaScript 的方式上。

更新:


我试过这个:

for (int i = 0; i < centerPointsList.size (); i++)
{
QVariant holdInformation = map->page ()->mainFrame ()->evaluateJavaScript (QString ("constructFileName (%1)").arg (centerPointsList [0].toFloat ()));

结果是:

"TypeError: Result of expression 'centerPointFileName.split' [undefined] is not a function. on line:65 Source:file:///.../index.html"

函数constructFileName(Javascript)如下:

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

最佳答案

根据您的更新,您的 JavaScript 函数需要一个字符串参数。最简单的方法应该是这样的:

QString info = QString("constructFileName('%1')").arg(centerPointsList[i].toFloat());
QVariant holdInformation = map->page()->mainFrame()->evaluateJavaScript(info);

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

关于javascript - 如何将参数传递给 evaluateJavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14169718/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com