根据该文档为Wicked-Good-XPath,wgxpath.install()
确保XPATH评价函数“...是在窗口对象上定义。”。
按照文档的浏览器扩展程序Content Scripts,内容脚本在一个孤立的世界(JS上下文)“活的”,至于window
对象属性关注:
“每个孤立的世界看到它自己的版本的对象。分配给对象影响你的对象的独立副本。“
我还没有尝试过自己,但最有可能你需要有Wicket的良好-的XPath在网页(而不是内容脚本)的JS背景下,所以你应该把你的内容脚本添加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,你可能需要在Web页面的JS上下文中注入更多的代码(或者在两个JS上下文之间进行通信的方式)。
BTW,this answer是的几种方法你可以注入代码或内容脚本插入到网页,使用的是Chrome扩展了很好的参考。
你为什么不把它放到你的view html body中? :) – Lashus
@Lusus:这是一个内容脚本。没有视图 - 它适用于所有网址。 – gkalpak
不知道那么,对不起。我的猜测是,因为评估是一个安全违规行为,它不会被执行。 http://developer.chrome.com/apps/sandboxingEval.html – Lashus