- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我怎样才能制作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/
我在 StackOverflow 和其他地方看到了很多与此类似的问题,但没有一个直接解决我的问题。我正在 THREE.js 中使用凸包生成器生成 n 边多面体。我想将方形纹理映射到每个多面体的每个面上
我是一名优秀的程序员,十分优秀!