gpt4 book ai didi

javascript - Chrome 扩展内容页面的 wicked-good-xpath

转载 作者:行者123 更新时间:2023-11-28 08:43:12 25 4
gpt4 key购买 nike

我怎样才能制作wicked-good-xpath chrome 扩展的内容页面可以使用库吗?

我尝试将其放入 manifest.json 文件中,但 wgxpath.install() 失败。在下面的示例中,alert.js 触发警报,injected.js 运行并在源选项卡中可用。但没有 WGXPath。

  "content_scripts": [
{
"matches" : ["<all_urls>"],
"js" : ["res/js/alert.js", "res/js/wgxpath.install.js", "injected.js" ],
"run_at" : "document_end"
}
],

谢谢

最佳答案

根据 Wicked-Good-XPath 的文档,wgxpath.install() 确保 XPAth 评估函数“...在窗口对象上定义。”

根据 Chrome 扩展 Content Scripts 的文档,内容脚本“存活”在一个孤立的世界(JS 上下文)中,就 window 对象属性而言:

“每个孤立的世界都会看到自己的对象版本。分配给该对象会影响该对象的独立副本。”

<小时/>

我自己没有尝试过,但很可能您需要在网页的 JS 上下文中使用 Wicket-Good-XPath(而不是内容脚本),因此您应该让内容脚本添加 script 元素,其中 src 指向 wgxpath.install.js 文件,然后在网页的 JS 上下文中执行 wgxpath.install()
此外,您需要将 wgxpath.install.js 文件添加到扩展程序的 web_accessible_resources 中。

示例代码:

manifest.json 中:

...
"content_scripts": [{
...
"js": ["res/js/alert.js", "injected.js"],
...
}],
"web_accessible_resources": ["/res/js/wgxpath.install.js"]

injected.js中:

/* "Embed" `wgxpath.install.js` into the web-page */
var script = document.createElement("script");
script.type = "text/javascript";
script.src = chrome.extension.getURL("/res/js/wgxpath.install.js");
document.body.appendChild(script);

/* "Install" Wicked-Good-XPath into the web-pages context */
var script = document.createElement("script");
script.type = "text/javascript";
script.textContent = "wgxpath.install();";
document.body.appendChild(script);
/*Optionaly*/script.parentNode.removeChild(script);

根据您想要如何使用 Wicked-Good-XPath,您可能需要向网页的 JS 上下文中注入(inject)更多代码(或设备在两个 JS 上下文之间进行通信的方式)。

<小时/>

顺便说一句, this answer 是一个很好的引用,介绍了使用 Chrome 扩展程序将代码或内容脚本注入(inject)网页的几种方法。

关于javascript - Chrome 扩展内容页面的 wicked-good-xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20243016/

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