Greasemonkey unsafeWindow Vk

时间:2014-09-28 10:40:11

标签: javascript greasemonkey vk

我正在为Vk评论自动化编写greacemonkey用户脚本。

并且无法理解为什么我无法访问对象。

Vk window obj有两个不同的 Composer composer 对象(相同的单词,但是第一个大写较低)。来自 unsafeWindow Composer是可访问的,但是lowercapital object composer返回undefined。

(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 个答案:

答案 0 :(得分:1)

在Greasemonkey脚本运行很久之后,

composer(小写)是按需创建的。

要从脚本访问它,您需要等待它。类似的东西:

var composerChkTmr  = setInterval (doStuffWith_composer, 222);

function doStuffWith_composer () {
    if (typeof unsafeWindow.composer === "undefined")
        return;

    clearInterval (composerChkTmr);

    // DO WHATEVER, WITH unsafeWindow.composer HERE.
}