Я бы хотел использовать html.element.click () в своем расширении, чтобы нажимать на вкладки и получать значения элементов DOM с этой веб-страницы: https://realtime.demo.sonicwall.com/main.html. Я пробовал много разных сценариев, включая отправку сообщения, иэто последняя версия, которую я нашел в Интернете, но все они приводят к следующей ошибке.Я получаю сообщение об ошибке: «VM2551: 5 Uncaught TypeError: Невозможно прочитать свойство« click »из null».
manifest.json
{
"manifest_version": 2,
"name": "SonicWall Audit",
"version": "1.0",
"icons": {
"128": "icon.png"
},
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["*://*.realtime.demo.sonicwall.com/*"],
"js": ["content.js"]
}],
"browser_action": {
"default_title": "Run Gen6 Audit",
"default_popup": "index.html"
},
"permissions": [
"activeTab",
"<all_urls>"
],
"permissions": ["activeTab"]
}
test.js
document.getElementById("test").addEventListener('click', () => {
console.log("Popup DOM fully loaded and parsed");
function modifyDOM() {
//You can play with your DOM here or check URL against your regex
console.log('Tab script:');
document.getElementById('j1_64_anchor').click();
console.log(document.body);
return document.body.innerHTML;
}
//We have permission to access the activeTab, so we can call chrome.tabs.executeScript:
chrome.tabs.executeScript({
code: '(' + modifyDOM + ')();' //argument here is a string but function.toString() returns function's code
}, (results) => {
//Here we have just the innerHTML and not DOM structure
console.log('Popup script:')
console.log(results[0]);
});
});
index.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<button id="test">TEST!</button>
<script src="test.js"></script>
</body>
</html>