当前位置:  开发笔记 > 编程语言 > 正文

如何在加载后使用greasemonkey调用页面上的函数

如何解决《如何在加载后使用greasemonkey调用页面上的函数》经验,为你挑选了3个好方法。

我有一个非常简单的greasemonkey脚本,我想在页面上调用已经存在的javascript函数.我已阅读文档,似乎没有任何工作

window.setTimeout(function() { 
    alert('test') // This alert works, but nothing after it does
    myFunction() // undefined
    window.myFunction() // undefined
    document.myFunction() // undefined
}, 1000);

Maiku Mori.. 26

尝试使用:unsafeWindow.myFunction();

更多细节和信息 - http://wiki.greasespot.net/UnsafeWindow



1> Maiku Mori..:

尝试使用:unsafeWindow.myFunction();

更多细节和信息 - http://wiki.greasespot.net/UnsafeWindow



2> Paul Dixon..:

在原始页面中调用函数的一种方法是这样的:

location.href = "javascript:void(myFunction());";

这有点难看.也有unsafeWindow通过的GreaseMonkey提供过,但作者建议不要使用它.

unsafeWindow.myFunction();

看起来更整洁,但要确保你了解其后果.从手册:

unsafeWindow绕过Greasemonkey的基于XPCNativeWrapper的安全模型,该模型的存在是为了确保恶意网页不会改变对象,从而使paintmonkey脚本(以比网页中运行的普通Javascript更多的权限执行)执行其作者的操作或用户不打算.因此,用户脚本应该避免调用或以任何其他方式取决于unsafeWindow上的任何属性 - 特别是如果它们是针对任意网页执行的,例如@include*,其中页面作者可能以这种方式颠覆了环境.

换句话说,如果使用unsafeWindow,则脚本会提升原始页面脚本的可用权限.



3> Sophia..:

您可以尝试使用javascript事件侦听器.

这些执行代码响应发生的对象事件(例如页面加载)

例如,要在页面加载时执行代码:

window.addEventListener('load', function () 
{
    /* code goes here */
}

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有