gpt4 book ai didi

google-chrome - 在background.html中,如何访问当前网页以获取dom

转载 作者:行者123 更新时间:2023-12-03 03:07:04 24 4
gpt4 key购买 nike

在background.html中,我想获取当前网页的dom。例如“getElementById()

最佳答案

为此,您需要使用 Message Passing 。需要消息传递来允许您与 DOM 进行通信,而与 DOM 进行通信的唯一方法是通过内容脚本。我将向您展示两种方法:

方法1

让每个访问的页面监听扩展请求

背景.html

<html>
<script>
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getHTML"}, function(response) {
console.log(response.data);
});
});
</script>
</html>

content_script.js

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getHTML")
sendResponse({data: document.getElementById('header').innerHTML});
else
sendResponse({}); // snub them.
});

方法2

仅在需要时执行内容脚本:

背景.html

<html>
<script>
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(tab.id, {file: 'execute.js'});
});

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
console.log('Data Recieved: ' + request.data);
});
</script>
</html>

执行.js

chrome.extension.sendRequest({data: document.getElementById('header').innerHTML});

关于google-chrome - 在background.html中,如何访问当前网页以获取dom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2779579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com