Javascript 是否在不取消安全窗口的情况下使用Recaptcha?

Javascript 是否在不取消安全窗口的情况下使用Recaptcha?,javascript,greasemonkey,recaptcha,userscripts,Javascript,Greasemonkey,Recaptcha,Userscripts,我已经阅读了这些方法作为unsafeWindow的替代方法。但我仍然无法在没有unsafeWindow的情况下使用Recaptcha对象。 我使用unsafeWindow的代码是(此代码工作正常): 我尝试了这个,但没有成功: //after script inject Recaptcha = location.assign("javascript:Recaptcha();void(0)"); Recaptcha.create(theKey,"recaptcha_widget_div",{the

我已经阅读了这些方法作为unsafeWindow的替代方法。但我仍然无法在没有unsafeWindow的情况下使用Recaptcha对象。 我使用unsafeWindow的代码是(此代码工作正常):

我尝试了这个,但没有成功:

//after script inject
Recaptcha = location.assign("javascript:Recaptcha();void(0)");
Recaptcha.create(theKey,"recaptcha_widget_div",{theme:"red"});
我对定位黑客做了什么错事

请注意,我希望代码也能在Chrome内容脚本中使用。

location.assign()加载新页面;“poofing”将脚本和任何变量(如
Recaptcha
)清除

在这种情况下,继续使用
unsafeWindow
。除非你知道一个网站管理员正在瞄准Greasemonkey脚本,否则这其实没什么大不了的

在这种情况下,危险性更低,因为您正在添加recaptcha代码。目标页不是


更新:
OP表示这也适用于Chrome内容脚本。在这种情况下,按如下方式注入两部分:

function addJS_Node (text, s_URL) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

addJS_Node (null, 'http://www.google.com/recaptcha/api/js/recaptcha_ajax.js');

//-- Might need a delay here, but probably not.
addJS_Node ('Recaptcha.create(theKey,"recaptcha_widget_div",{theme:"red"});');
location.assign()
加载新页面;“poofing”将脚本和任何变量(如
Recaptcha
)清除

在这种情况下,继续使用
unsafeWindow
。除非你知道一个网站管理员正在瞄准Greasemonkey脚本,否则这其实没什么大不了的

在这种情况下,危险性更低,因为您正在添加recaptcha代码。目标页不是


更新:
OP表示这也适用于Chrome内容脚本。在这种情况下,按如下方式注入两部分:

function addJS_Node (text, s_URL) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

addJS_Node (null, 'http://www.google.com/recaptcha/api/js/recaptcha_ajax.js');

//-- Might need a delay here, but probably not.
addJS_Node ('Recaptcha.create(theKey,"recaptcha_widget_div",{theme:"red"});');

只是好奇,你为什么要用Greasemonkey来添加recaptcha?难道你不知道你是不是人吗?也没有太多的机器人运行启用了GM的Firefox。我为一个论坛制作了一个脚本,它在内容页中不提供回复表单。用户必须转到其他页面才能回复帖子。当然,需要一个recaptcha来回答。只是好奇,为什么要使用Greasemonkey来添加recaptcha?难道你不知道你是不是人吗?也没有太多的机器人运行启用了GM的Firefox。我为一个论坛制作了一个脚本,它在内容页中不提供回复表单。用户必须转到其他页面才能回复帖子。当然,需要回复recaptcha。事实上,我想让我的脚本可用于chrome,而不使用tamper monkey等插件支持,没有它chrome无法运行unsafeWindow。如果你想让这个chrome兼容,请在问题中这样说!查看更新后的答案。实际上,我想让我的脚本在不使用插件支持(如tamper monkey)的情况下可用于chrome,没有插件支持,chrome无法运行unsafeWindow。如果你想让这个chrome兼容,请在问题中说类似的话!请参阅更新的答案。