Firefox addon 为什么赢了';这个剪贴板代码通过Mozilla验证了吗?
药膏!当我在我的插件上尝试Mozilla时,它会出现以下与我处理剪贴板使用相关的错误: 壁虎16中的已更改 警告:界面已更改为更好的支持 私人浏览模式。实例化对象后,应该调用 在调用任何其他函数之前,先对其执行Firefox addon 为什么赢了';这个剪贴板代码通过Mozilla验证了吗?,firefox-addon,clipboard,Firefox Addon,Clipboard,药膏!当我在我的插件上尝试Mozilla时,它会出现以下与我处理剪贴板使用相关的错误: 壁虎16中的已更改 警告:界面已更改为更好的支持 私人浏览模式。实例化对象后,应该调用 在调用任何其他函数之前,先对其执行init函数。 查看更多信息 信息 var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable); if
init
函数。
查看更多信息
信息
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if ('init' in trans){ trans.init(null);};
我不明白
这是我的代码-我显然在调用trans.init
:
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip) return "";
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if ('init' in trans){ trans.init(null);}; //<--IT DOESN'T LIKE THIS
if (!trans) return false;
trans.addDataFlavor("text/unicode");
验证器不报告任何错误-只报告此警告。一切正常。Mozilla更新了Gecko引擎,他们希望开发者能够达到新的标准
在我的使用中,我们希望能够使用剪贴板的内容,这些内容可能也是从应用程序外部获得的,因此我们确实希望使用null
调用init函数,而不是window
任何建议都很好
trans.init(null)
在某些情况下是有效的,例如您的情况。如果在错误的情况下使用,它还可能导致隐私泄露,因此验证程序会将它的所有使用标记为可能需要更改。因此,在这种情况下,这是一个警告,您可以忽略。从剪贴板获取数据不受Firefox隐私状态的影响。好吧,我不确定这有什么帮助,但是,谢谢,我想。您编写的代码读取剪贴板内容。然后将加载上下文(而不是null)传递给init函数将使验证器满意,而不会妨碍您访问剪贴板。@paa谢谢,但我尝试了if('init'in trans){trans.init(window);}代码>但我仍然得到验证错误。非常感谢。AMO的一位编辑告诉我,我可以把它包装成一个尝试-捕捉序列,然后也忽略它,但他从未告诉我为什么我可以忽略它。
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
trans.init(null); //<---LOOK HERE
if (!trans) return false;
trans.addDataFlavor("text/unicode");