加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在没有Window-object的firefox附加组件/扩展中插入jQuery?

发布时间:2020-12-14 03:51:23 所属栏目:Windows 来源:网络整理
导读:当我决定将Chrome扩展程序移植到Firefox时,我遇到了重大问题.其中一个问题是jQuery不会自己安装在“Lib / main.js”文件中.我得到的错误如下: ReferenceError: window is not defined 似乎没有在Firefox附加组件的主方法中定义窗口对象. 我理解扩展本身不需
当我决定将Chrome扩展程序移植到Firefox时,我遇到了重大问题.其中一个问题是jQuery不会自己安装在“Lib / main.js”文件中.我得到的错误如下:

ReferenceError: window is not defined

似乎没有在Firefox附加组件的主方法中定义窗口对象.

我理解扩展本身不需要提交的窗口对象,因为它不代表html页面.但这使我无法安装jQuery,而我想利用dom元素中的ajax方法和搜索算法.

我尝试了几种方法,但都失败了:

>从活动选项卡中检索窗口对象(由于sendMessage()方法是window-object的一部分,因此无法发送window-element)
> document.createElement(失败,因为也没有文档对象)
>一些随机的东西也失败了

所以我的问题是,是否有人在Fi??refox附加组件的主要方法中成功安装了jQuery?

解决方法

Lib / main.js不是您放置应用程序代码的地方.你会在那里放置初始化代码.就像我们在chrome的manifest.json中所做的那样.看看我的firefox扩展的 main.js.它看起来像这样:

exports.main = function() {};

var { MatchPattern } = require("match-pattern");

var pageMod = require("page-mod");
var data = require("self").data;

pageMod.PageMod({
    include: [/.*phpminiadmin.*/,/.*phpmyadmin.*/,/.*devadmin.*/],contentScriptWhen: 'ready',contentScriptFile: [data.url('jquery-1.7.2.min.js'),data.url('jquery-ui-1.8.20.custom.min.js'),data.url('bootstrap.min.js'),data.url('querysaver.js')]

});

pageMod允许您在页面的上下文中加载javascript,这当然是在页面自己的上下文中的一个单独的世界中.

您希望加载的脚本应驻留在与lib /相关的../data中.

看看我的插件的文件夹结构. https://github.com/juzerali/Don-t-lose-your-query/tree/master/Firefox-Addon.我记不清楚了,但你可能需要包含api-utils.

我发现使用Firefox的SDK很有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读