#javascript #firefox #firefox-addon
#javascript #firefox #firefox-дополнение
Вопрос:
Я хочу создать дополнение, которое изменяет одно значение в window
.
Давайте возьмем, к примеру, простое окно:
<html>
<head>
<title></title>
<script>
window.hello = 1;
</script>
</head>
<body>
</body>
</html>
Используя
gBrowser.addEventListener("DOMContentLoaded",
function (e)
{
e.originalTarget.defaultView.hello = 2;
}, false);
не изменяет значение window.hello
. Значение e.originalTarget.defaultView != window
.
Как я могу получить доступ к чистому window
?
Комментарии:
1. Я думаю,
e.originalTarget
относится к документу этой страницы. попробуйтеe.target.defaultView.wrappedJSObject.hello = 2
. У меня есть похожий код, и это работает для меня.2. @skabbes спасибо, это работает! Отправьте в качестве ответа, и я приму.
Ответ №1:
e.originalTarget
относится к элементу document этой страницы. Чтобы получить доступ к элементу window страницы, вы используете e.target.defaultView
. Однако, чтобы оставаться в рамках протоколов безопасности Mozilla, вы должны получить доступ к объекту window через его wrappedJSObject
свойство. В целом, вы бы изменили переменную следующим образом:
e.target.defaultView.wrappedJSObject.hello = 2