Я пытаюсь создать крошечное расширение Chrome.
У этого есть один вход, который содержит логин, который пользователь может нажать на кнопку.После нажатия скрипт вводится на текущую страницу, и я пытаюсь передать данные (логин введен в расширении html), но похоже, что он не работает, и я не знаю, как его протестировать, чтобы найти причину.почему он не работает.
На данный момент, предупреждение («Внедрение работает»);работает, но не предупреждение ("csEvent запущен");когда я нажимаю кнопку и в диспетчере расширений не появляется сообщение об ошибке.
Вот код:
Манифест
{
"name" :"Quick Pass",
"version" :"1.0",
"manifest_version": 2,
"description" :"Password for quick access",
"browser_action" :
{
"default_icon" : "icone.png",
"default_popup": "popup.html"
},
"web_accessible_resources": ["inject.js"],
"permissions": [
"https://*/*",
"http://*/*",
"tabs",
"activeTab"
]
}
buttonScript.js
document.getElementById("myButton").addEventListener("click", myFunction);
// When user clicks on the submit button of the extension, load the script on current tab
function myFunction() {
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.executeScript({
file: 'inject.js'
});
});
// data you want to sent
let data = {
login: document.getElementById("loginPopup").value,
pwd: "Password"
};
// send data through a DOM event
document.dispatchEvent(new CustomEvent('csEvent', {detail: data}));
}
inject.js
// Injected from Chrome "APPI Pass" extension
(function() {
alert("inject is running");
document.addEventListener('csEvent', function (event) {
alert("csEvent fired");
console.log(event.detail.login+event.detail.pwd);
document.getElementById("Email").value = event.detail.login;
document.getElementById("Password").value = event.detail.pwd
document.getElementByTagName("form").submit();
});
})();
И popup.html:
<DOCTYPE html>
<head>
</head>
<body>
<h2>Appi Magic</h2>
<h3>Enter Login:</h3>
<input type="text" id="loginPopup">
<button id="myButton">Let go</button>
<script src="buttonScript.js"></script>
</body>
</html>
Спасибо