gpt4 book ai didi

javascript - $x() 函数未在 Chrome 扩展、内容脚本中定义

转载 作者:数据小太阳 更新时间:2023-10-29 04:11:44 27 4
gpt4 key购买 nike

$x("//a[contains(@href,'.jpg')]");

在开发人员工具命令提示符下按预期工作。但是,当在扩展的内容脚本中时,我得到一个“$x is not defined”。

为什么这在内容脚本中不可用,或者在内容脚本/Chrome 扩展程序中是否有特殊的访问方式?

我在 Debian 上使用 Chrome 22。

最佳答案

$x() 不是网页或内容脚本的运行时环境的一部分。它是 the Command Line API for Chrome's DevTools 的一部分的工具.

要在内容脚本中使用 XPath,您需要以正常方式进行,DevTools 方便的快捷方式不可用。

您的代码如下所示:

var jpgLinks    = document.evaluate (
"//a[contains(@href,'.jpg')]",
document,
null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null
);
var numLinks = jpgLinks.snapshotLength;

for (var J = 0; J < numLinks; ++J) {
var thisLink = jpgLinks.snapshotItem (J);
console.log ("Link ", J, " = ", thisLink);
}

-- 这就是 $x() 在幕后为您做的事情。


当你这样做的时候,考虑切换到 CSS selectors .那么相同的功能是:

var jpgLinks    = document.querySelectorAll ("a[href$='.jpg']");
var numLinks = jpgLinks.length;

for (var J = 0; J < numLinks; ++J) {
var thisLink = jpgLinks[J];
console.log ("Link ", J, " = ", thisLink);
}

-- 这在我的书中更可口。

关于javascript - $x() 函数未在 Chrome 扩展、内容脚本中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18432072/

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