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.
}
Другие вопросы по тегам