我喜欢GM的概念,但在实践中,除非你一直使用它并且是一个绝对的JS神,它是不可能使用的(也许我只是吮吸?).

如果有一些扩展需要几行JS并在页面加载后为某个站点运行它会非常有用.但这不是通用汽车所做的.通过GM,你必须处理多个框架和那些层层的烦人的安全问题和范围.
即使你只是忽略了正确的程序并使用不安全的窗口或其他一个黑客,它通常仍然无法正常工作.

你可以很容易地想出JS,你可以在浏览器控制台中运行,它可以做你想要的,但是当转移到用户脚本时,它永远不会有效.我可以更改的greasemonkey中的任何设置,还是完全不同的扩展,以便于使用?

注意:我使用Chrome,因此针对该特定浏览器的解决方案的奖励积分.

总结:我想要一种方法来自动运行与特定页面上的控制台具有相同范围/权限的脚本.

解决方法

除了Firefox的Greasemonkey或Chrome的自动运行用户JS的用户脚本之外,没有更简单的替代方案.你可以 write your own extension/add-on,但没有多大意义.

如果你不关心GM和用户脚本提供的强大的额外功能,并且总是希望在某个站点的页面加载后“(接受)几行JS和(运行)它们” – 忽略iframe,那么只是使用以下代码作为所有脚本的基本模板:

// ==UserScript==
// @name    _Base template for simple,cross-browser,JS injection.
// @match   *://YOUR_SERVER.COM/YOUR_PATH/*
// @run-at  document-start
// ==/UserScript==

if (window.top != window.self)  //-- Don't run on frames or iframes.
    return;


function scriptMain () {
    // PUT ALL OF YOUR CODE HERE,INCLUDING ANY FUNCTIONS YOU CREATE.
    console.log ("Hello World!");
}

window.addEventListener ("load",scriptMainLoader,false);

function scriptMainLoader () {
    addJS_Node (null,null,scriptMain);
}

function addJS_Node (text,s_URL,funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';

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

请注意,@ run-at document-start是必需的(对于Chrome),但您的代码仍将在文档加载时触发.

javascript – Greasemonkey的简单替代品的更多相关文章

  1. 用Greasemonkey替换页面的jQuery版本

    如何用greasemonkey替换页面的jquery版本?我试图用更新版本的jquery测试网站,但我没有开发环境.解决方法我知道你要求jQuery和Greasemonkey这样做,但让我摆脱一个完全不同的选择,Fiddler.如果您正在使用新版本的jQuery测试网站,并且您实际上想要测试任何重大更改等…

  2. JavaScript – Greasemonkey的工作原理

    GM侦听DOMContentLoaded事件here.然后包装用户脚本代码并将其插入沙箱here.

  3. jquery – Greasemonkey – 等待页面在执行代码技术之前加载

    我写了一个Greasemonkey的用户脚本,并希望在页面完全加载时执行特定的代码,因为它返回一个我想显示的div计数。问题是,这个特定的页有时需要一点在一切加载之前。我试过,文档$;和$.load;包装。然而,没有一个似乎为我工作,虽然我可能会应用他们错了。最好我可以做的是使用setTimeout;它工作,虽然不总是可靠。在Greasemonkey中使用的最好的技术是什么,以确保在页面加载完成时执行特定的代码?解决方法Greasemonkey(通常)没有jQuery。

  4. javascript – Greasemonkey检测私人浏览模式?

    我需要使我的Greasemonkey脚本在Firefox私有浏览窗口中正在运行时的行为不同.可以从Greasemonkey中检测出来吗?如果没有,那么在私人浏览模式下是否有可能无法运行?

  5. Greasemonkey是否允许通过@require加载本地javascript?

    我试图添加一些本地Javascript,并且在这两种情况下,脚本无法加载,并且脚本似乎停止工作,直到重新启动浏览器,即使已删除@require的行已删除.我试了两个然后并且这两个选项都不起作用.是加载本地Javascript禁止在Greasemonkey还是需要一些额外的设置启用它?

  6. javascript – 使用XPath读取输入的值,然后在Greasemonkey中使用

    我使用这个XPath来获取一个字段的值:我得到几个结果,但我只想要第一个.运用不行一旦我有这个,我如何在Greasemonkey中获取价值?

  7. javascript – Greasemonkey的简单替代品

    ).如果有一些扩展需要几行JS并在页面加载后为某个站点运行它会非常有用.但这不是通用汽车所做的.通过GM,你必须处理多个框架和那些层层的烦人的安全问题和范围.即使你只是忽略了正确的程序并使用不安全的窗口或其他一个黑客,它通常仍然无法正常工作.你可以很容易地想出JS,你可以在浏览器控制台中运行,它可以做你想要的,但是当转移到用户脚本时,它永远不会有效.我可以更改的greasemonkey中的任何设置,还是完全不同的扩展,以便于使用?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部