我创建了一个Firefox扩展,它提供了一个openDb
函数来在配置文件文件夹中创建一个SQLite数据库。我的功能正常。但它不起作用
一个Web worker(HTML5),那里没有定义函数。
我的chrome.manifest
文件供您参考:
component {12345678-1234-5678-abcd-12345678abcd} components/dblay.js
contract @goo.com/gftdb;1 {12345678-1234-5678-abcd-12345678abcd}
category JavaScript-global-property openDB @goo.com/gftdb;1
我如何在网络工作者中定义我的功能?
答案 0 :(得分:0)
我非常确定您无法向网络工作者添加全局属性,所有现有选项(javascript-global-property
类别,content-document-global-created
和document-element-inserted
观察者通知)仅允许您调整全局附在文件上的范围。即使是这样做的一种方法,它也无济于事:它需要从不同的线程访问您的XPCOM组件,因为每个Web工作者都有自己的线程。 Firefox中的JavaScript不再是线程安全的,但如果您尝试这样做会导致崩溃。所以恕我直言,你试图做的事情是不能用基于JavaScript的扩展。