document.evaluate在Chrome扩展程序中返回NULL

时间:2018-08-21 06:03:27

标签: javascript xpath google-chrome-extension

背景
嗨,我正在构建一个chrome扩展程序,该扩展程序允许用户通过Xpath使用上下文菜单获取文档位置(DOM元素)。
Xpath将存储在浏览器的local storage中。 文字值将检索

场景1
当用户通过context menu选择元素时;扩展名将存储该元素中的Xpath并将其存储在local storage中。
Text Value将使用document.evaluateXpath进行检索。这将用作请求参数(ajax请求)。
[此方案正在运行]

场景2
当用户重新加载页面或导航到另一个页面时,我想发送请求而不使用上下文菜单交互。扩展程序将从Xpath中检索Local Storage,并尝试使用Text Value获取document.evaluate。结果为 NULL 值。

我已经在content_scripts下实现了此代码。
但是 [此方案不起作用]

一些重要的代码段

// Get Text Value using xpath
function getValueByXpath(path) {
  const node = document
    .evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
    .singleNodeValue;
  return (node) ? node.textContent : '';
}

// Store Xpath
chrome.storage.local.set({ candidateEmailXpath: xpath });

页面重新加载后是否可以读取xpath? 我如何在这里尝试文件准备方法? (如果可能)

0 个答案:

没有答案