背景
嗨,我正在构建一个chrome扩展程序,该扩展程序允许用户通过Xpath
使用上下文菜单获取文档位置(DOM元素)。
该Xpath
将存储在浏览器的local storage
中。
文字值将检索
场景1
当用户通过context menu
选择元素时;扩展名将存储该元素中的Xpath
并将其存储在local storage
中。
Text Value
将使用document.evaluate
和Xpath
进行检索。这将用作请求参数(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? 我如何在这里尝试文件准备方法? (如果可能)