当前位置: 首页 > 面试题库 >

Greasemonkey 1.0中的jQuery与使用jQuery的网站冲突

洪安顺
2023-03-14
问题内容

自几天前发布新的Greasemonkey1.0以来,每个具有jQuery的站点以及我在Greasemonkey脚本中使用jQuery的站点均无法正常运行我的脚本。我的GS脚本中的jQuery使用@require元数据)与页面的jQuery冲突。这是由于新的@grant代码。

我已经阅读了文档,但仍然不知道如何再次在沙箱中运行GS脚本;唯一的选择似乎是要么授予对GSAPI的访问权限,要么不授予其访问权限,然后在没有任何安全限制的情况下运行脚本,当我设计了数十个GS脚本以运行时,这对我根本不起作用具有安全性限制,并且喜欢这种方式。


问题答案:

Greasemonkey 1.0彻底改变了沙箱的工作方式,破坏了数千个脚本。这是一个很大的问题,我希望您能与我一起就该问题的主要错误报告表达您的意见/经验。

this.$ = this.jQuery = jQuery.noConflict(true);

…我不确定在所有情况下都可以使用。从副作用避免,DRY原理,原子编码原理来看,这是完全错误的方法。我认为,最好的策略是还原沙箱。

通过指定一个@grant值(除外none)重新激活沙盒。编辑您的
元数据块 ,以以下几行结尾

// @grant       GM_addStyle
// @grant       GM.getValue
// ==/UserScript==
/*- The @grant directive is needed to work around a design flaws introduced in GM 1.0
    and again in GM 4.0.
    It restores the sandbox.
*/

沙箱将被还原,所有冲突将得到解决。这些脚本将与Tampermonkey和Violentmonkey等高级引擎兼容。



 类似资料:
  • 问题内容: 我想使用严格的javascript生成任何给定URL的屏幕快照缩略图。如果无法做到这一点,谁能用我自己的api指向我正确的方向呢? 编辑我只是决定作弊并使用框架,因为无论如何我都是为了娱乐而做的,但是感谢所有的出色答案,如果您想做这样的事情,khtmltox可能是最好的选择……他们也有php绑定还有。 问题答案: 如果您查看wkhtmltox,则有用于将网页转换为图像的本机lib /

  • 问题内容: 我有一个现有的jQuery插件,可以进行很多AJAX调用(主要是JSON)。我想知道最快允许它进行跨站点调用的方法,即$ .get和$ .post URL不会来自同一域。 我听说过JSONP,但是想知道是否有人可以给我一个具体的例子来介绍整个过程。如果可能,我希望对脚本进行最少的更改。我应该使用某种proxy.php吗? 感谢您的时间。 问题答案: JSONP将允许您进行跨站点调用。请

  • 1.自定义添加$ 从上面四篇文章我们看到jQuery的强大,但无论如何,jQuery都不可能满足所有用户的需求,而且有一些需求十分小众,也不适合放到整个jQuery框架中,正是因为这一点,jQuery提供了用户自定义添加“$”的方法。 代码如下: $.fn.disable = function() { return this.each(function() {

  • 本文向大家介绍jQuery 中$(this).index与$.each的使用指南,包括了jQuery 中$(this).index与$.each的使用指南的使用技巧和注意事项,需要的朋友参考一下 工作当中响应某个需求,切换选项卡的一个效果,根据每个选项下的内容元素的总数不同而进行不同的html变化(如果选项卡下的内容为空就等于XXX,否则就XXX)   先声明 选项卡的头部就叫头部      选项

  • 本文向大家介绍jQuery dataTables与jQuery UI 对话框dialog的使用教程,包括了jQuery dataTables与jQuery UI 对话框dialog的使用教程的使用技巧和注意事项,需要的朋友参考一下 首先介绍下这两个插件功能  1.DataTables是一个jQuery的表格插件。 官方网站及其下载地址:http:/www.datatables.net 其主要特点如

  • 本文向大家介绍JQuery EasyUI的使用,包括了JQuery EasyUI的使用的使用技巧和注意事项,需要的朋友参考一下 jQuery EasyUI 是一个基于 jQuery 的框架,集成了各种用户界面插件。 EasyUI 简介 easyui是一种基于jQuery的用户界面插件集合。 easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。 使用easyui你不需要写很