Greasemonkey unsafeWindow Vk
Я пишу пользовательский скрипт greacemonkey для автоматизации комментирования Vk.
И не могу понять, почему я не могу получить доступ к объекту.
Vk window obj имеет два разных объекта Composer и composer (одни и те же слова, но первая заглавная буква ниже). Из unsafeWindow Composer доступен, но в нижний регистр объектов композитор возвращает неопределенное значение.
(function (window, undefined) {
.....
some code
finding post, openning comment form, pasting text
need to call:
unsafeWindow.composer.addMedia.checkMessageURLs("Comment text<br />http://example.com",true);
.....
console.log(unsafeWindow.Composer); // return object
console.log(unsafeWindow.composer); // return undefined
}
если запустить
composer.addMedia.checkMessageURLs("Comment text<br />http://example.com",true);
прямо в консоли браузера - все ок.
Есть идеи?
1 ответ
Решение
composer
(нижний регистр) создается по требованию, долгое время после запуска скрипта Greasemonkey.
Чтобы получить доступ к нему из сценария, вам нужно дождаться его. Что-то вроде:
var composerChkTmr = setInterval (doStuffWith_composer, 222);
function doStuffWith_composer () {
if (typeof unsafeWindow.composer === "undefined")
return;
clearInterval (composerChkTmr);
// DO WHATEVER, WITH unsafeWindow.composer HERE.
}