如何引用Firefox扩展的数据目录中的文件?
我正在开发Firefox扩展,我需要从内容脚本中将JavaScript注入页面。 在我的Chrome扩展程序中,我完成了以下操作:
this.initializeJplayerSupport = function() {
var script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.setAttribute('src', chrome.extension.getURL('js/custom-jplayer.js'));
document.head.appendChild(script);
}
该文件在我的数据目录中。 如何在Firefox扩展内容脚本中引用js文件(我已经使用Chrome的chrome.extension.getURL()
)?
如果您在基于SDK的插件中使用main.js,则需要使用'self'对象中的'data'助手:
var data = require('self').data;
console.log(data.url('somefile.js')); // prints the resource uri to the file.
欲了解更多信息:
https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/self#data
一旦你获得了这个资源的URI,你就可以使用self.postMessage或self.port.emit将它提供给内容脚本:
https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts
它看起来像从Firefox 38开始, cfx
已被替换为jpm
。
这可能是为什么这条线路不适合我:
var data = require('self').data;
我只是不得不重写一下:
var data = require('sdk/self').data;
链接地址: http://www.djcxy.com/p/45745.html
上一篇: How to reference a file in the data directory of a Firefox extension?