Мой хром-расширение делает следующее:Chrome - расширение: Ошибка при отправке сообщения из background.js в content.js
1) Когда пользователь нажимает значок приложения новое всплывающее окно страницы, которые инициированы с 3 поля для заполнения.
2) Когда кнопка отправки нажата, вызывается getBackgroundPage(), а входные значения хранятся внутри background.js.
3) Я хочу как-то использовать эти значения внутри моего сценария содержания после того, как они будут сохранены в фоновом режиме. Я знаю, что каждая вкладка - это новый процесс, и отправка сообщения между ними немного сложна и выполняется асинхронно, но должен быть простой способ сделать это. Пожалуйста, если у вас есть жизнеспособное решение, сделайте его максимально понятным!
Вот код:
Manifest.js
{
"name": "My Extension",
"version": "1.0",
"manifest_version": 2,
"browser_action": {
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": [
"tabs", "<all_urls>","storage" , "activeTab"
],
"content_scripts": [
{
"matches": [ "https://www.linkedin.com/*"],
"js": ["userInfo.js"]
}]
}
Background.js
chrome.browserAction.onClicked.addListener(function(tab) {
{
chrome.tabs.create({
url: chrome.extension.getURL('dialog.html'),
active: false
}, function(tab) {
localStorage["tabid"]=tab.id;
chrome.windows.create({
tabId: tab.id,
type: 'popup',
focused: true,
height: 350, width:400
});
});
}
return true;
});
function setCredentials(username,password,token) {
console.log(username);
console.log(password);
console.log(token);
{
chrome.tabs.executeScript(parseInt(localStorage.tabid), {
file: "userInfo.js"
}, function() {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message);
}
});
}
};
Dialog.js
document.forms[0].onsubmit = function(e) {
e.preventDefault(); // Prevent submission
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
var token= document.getElementById('token').value;
chrome.runtime.getBackgroundPage(function(bgWindow) {
bgWindow.setCredentials(username,password,token);
window.close(); // Close dialog
});
};
userInfo.js
alert("got it");
Dialog.html
<!DOCTYPE html>
<html>
<head>
<style>
#leadinformation { text-align: left; font: 16px; position :absolute; padding:20px 20px 20px 20px; }
#formwrapper {padding:10px 20px 20px 20px; width:200px;}
#formsubmit {padding:0px 20px 20px 25px;}
leadinformation input{ position:relative;}
#ok { position: relative; top: 30%; font-family: Arial;font-weight: bold; font-size: 13px; color: #ffffff; padding: 5px 5px 5px 5px;background-image: webkit-linear-gradient(top, #287bbc 0%,#23639a 100%);background-color: #287bbc; border-width: 1px; border-style: solid; border-radius: 3px 3px 3px 3px; boder-color: #1b5480; width: 160px; height: 35px;}
#titleParagraph {font-weight:bold; font-size:20px;}
</style>
</head>
<body>
<div id="leadinformation">
<p id="titleParagraph">Provide your Salesforce login information!</p>
<form>
<div id="formwrapper">
Username: <input id="username" type="username">
Password: <input id="password" type="password">
Security Token: <input id="token" type="token">
</div>
<div id="formsubmit">
<input id="ok" type="submit" value="OK">
</div>
</form>
<script src="dialog.js"></script>
<div>
</div>
</body>
</html>
После нажатия на кнопку OK имя пользователя, пароль и маркер записываются в фоновом режиме консоли, затем эта ошибка.
не удается получить доступ к URL-адрес содержания "хром-расширений: //di***cb/dialog.html".
Extension манифест должен запросить разрешение на доступ к этому хосту (анонимные функции) @ background.js:. 39target (анонимный функции) @ расширения :: SafeBuiltins:. 19safeCallbackApply @ расширений :: SendRequest: 21handleResponse @ расширения :: SendRequest: 72
Так функциональные возможности, которые я хочу достичь довольно просто, пользователь щелкает значок -> обед всплывающее окно -> тип информации -> принять -> использовать информацию, далее в сценарии контента ,
Возможного дубликат [передать нескольких переменных к содержимому хрому сценария] (http://stackoverflow.com/questions/ 13794293/пасс-множественное-переменные к контент-скрипт-хром) – wOxxOm