gpt4 book ai didi

javascript - 为什么我只能评估 spookyjs (casperjs) 中的匿名函数

转载 作者:行者123 更新时间:2023-12-03 12:30:56 24 4
gpt4 key购买 nike

我正在使用 spookyjs 构建一个网络抓取工具:https://github.com/WaterfallEngineering/SpookyJS

我创建了一个新的幽灵对象,并且我正在尝试评估一个返回特定 html 标记内容的函数。为了便于阅读,我每次都尝试使用函数(returnDataFromSelector())来执行此操作。但是,当我通过评估传递该函数时,它返回 null。

当我使用匿名函数时,它可以正常工作。如何让 returnDataFromSelector 函数正常工作?

   spooky.then(function() {
function returnDataFromSelector(selector) {
return function () {
return document.querySelectorAll(selector)[0].innerHTML;
}
}
var pageData = {};
pageData.projectName = this.evaluate(returnDataFromSelector('a.green-dark')); // returns null
pageData.projectName = this.evaluate(function () { return document.querySelectorAll('a.green-dark')[0].innerHTML;}); // returns correct string
this.emit('pageData', pageData);
});

最佳答案

selector 变量不在正确的上下文中。您应该将选择器单独传递到 spooky.evaluate:

spooky.then(function() {
function returnDataFromSelector(selector) {
return document.querySelectorAll(selector)[0].innerHTML;
}
var pageData = {};
pageData.projectName = this.evaluate(returnDataFromSelector, 'a.green-dark');
pageData.projectName = this.evaluate(function () {
return document.querySelectorAll('a.green-dark')[0].innerHTML;
});
this.emit('pageData', pageData);
});

关于javascript - 为什么我只能评估 spookyjs (casperjs) 中的匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23936114/

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