是因为contentScript运行在沙盒环境中,无法直接访问页面的DOM结构。为了解决这个问题,可以通过消息传递机制来实现与页面的通信。
具体的解决方案如下:
chrome.runtime.sendMessage({ action: 'getElements' }, function(response) {
// 处理返回的结果
});
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.action === 'getElements') {
chrome.tabs.executeScript(sender.tab.id, { code: 'Array.from(document.querySelectorAll("your-selector"))' }, function(result) {
sendResponse(result[0]);
});
return true;
}
});
chrome.runtime.sendMessage({ action: 'getElements' }, function(response) {
// 处理返回的结果
});
这样就可以通过消息传递机制,将页面的DOM结构传递给contentScript进行处理。
对于Chrome扩展的contentScript无法获取querySelectorAll的问题,可以参考以下腾讯云产品和文档:
请注意,以上提到的腾讯云产品和文档仅供参考,具体的解决方案需要根据实际情况进行选择和调整。
领取专属 10元无门槛券
手把手带您无忧上云