添加XPath到chrome扩展或javascript



我正在制作chrome扩展,我需要在其中添加xpath,即使我将jquery添加到清单中,它也不工作。

ERROR: Uncaught ReferenceError: $x is not defined

清单:

"permissions": [
"activeTab",
"*://www.znamky.zsunesco.cz/*"
],
"content_scripts": [
  {
    "matches": ["http://znamky.zsunesco.cz/*"],
    "js": ["jquery-1.11.3.min.js", "Script.js"]
  }
]

脚本:

$x("//div[@class='nazevprdiv' and ./a[text()='"+name+"']]/../../td/table/tbody/tr[@class='detznamka']/td");

就像adelphus说的,它只是Firebug作为xpath快捷方式使用的一个变量。你可以用下面的代码来实现它:

function $x(path){
 var xpath = document.evaluate(path, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
   var temp = [];
   for (var i = xpath.snapshotLength - 1; i >= 0; i--) {
     temp.push(xpath.snapshotItem(i));
   }
   return temp;
}

$x只是一个普通的Javascript变量名-它不是什么特殊的xpath访问器。

Firebug似乎使用$x作为xpath快捷方式,但这不是标准的。

如文档所示,您应该只使用document。评估哪些是跨许多浏览器的标准(当然IE除外)。

编辑

如@Xan所示,$x也被Chrome用作其命令行API的一部分。

最新更新