在background.html中,我希望获得当前的网页dom。 例如“getElementById()
答案 0 :(得分:6)
为此,您需要使用Message Passing。需要消息传递以允许您与DOM进行通信,并且与DOM通信的唯一方法是通过Content-Scripts。我将向您展示两种方法:
让每个访问过的页面都监听扩展请求
<html>
<script>
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getHTML"}, function(response) {
console.log(response.data);
});
});
</script>
</html>
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getHTML")
sendResponse({data: document.getElementById('header').innerHTML});
else
sendResponse({}); // snub them.
});
只在需要时执行内容脚本:
<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>
chrome.extension.sendRequest({data: document.getElementById('header').innerHTML});
答案 1 :(得分:-4)
按CTRL + SHIFT + I为开发人员UI或CTRL + U为源