Я отправляю переменную newUser
из options.html
в background.html
с chrome.extension.getBackgroundPage()
вот так
document.getElementById("save").addEventListener(
"click", function ()
{
var newUser = document.getElementById("getEmail").value;
var bkg = chrome.extension.getBackgroundPage();
bkg.saveNewUser(newUser);
console.log("newUser " + newUser);
} , false)
В background.html
У меня
function saveNewUser (newUser)
{
newUser = newUser; //this should be global?
console.log("newUser from options page " + newUser);
}
console.log("newUser from options page " + newUser);
но newUser
локально для функции. Насколько я понимаю, если переменная сохраняется внутри функции без ключевого слова var
, она должна быть глобальной. Но в этом случае это не так. console.log
вне функции выдает ошибку Uncaught ReferenceError: newUser is not defined
.
Что я делаю не так и как я могу исправить область, чтобы использовать newUser
вне функции?
Спасибо.
Редактировать
Я попробовал следующее в background.html
, но я все еще получаю неопределенную ошибку newUser:
var extension_user
function saveNewUser (newUser)
{
extension_user = newUser; //this should be global
console.log("extension_user from options page " + extension_user);
}
console.log("extension_user from options page " + extension_user);
Обновление
Я изменил обе страницы, чтобы отразить ответы и комментарии, но все еще за пределами функции переменная не определена. Что я делаю не так?
options.html
document.getElementById("save").addEventListener(
"click", function ()
{
var newUserEmail = document.getElementById("getEmail").value;
var bkg = chrome.extension.getBackgroundPage();
bkg.saveNewUser(newUserEmail);
console.log("newUserEmail " + newUserEmail);
} , false)
background.html
var newUser
function saveNewUser (newUserEmail)
{
window.newUser = newUserEmail; //this should be global
console.log("newUser from options page inside function" + newUser);
}
console.log("newUser from options page " + newUser);