药膏!当我在我的插件上尝试Mozilla的验证器时,它会得到与我对剪贴板用法的处理相关的以下错误:
nsITransferable在壁虎16被改变了。 警告:nsITransferable界面已更改为更好地支持私有浏览模式。实例化对象之后,应该在调用任何其他函数之前调用对象上的init函数。有关详细信息,请参阅剪贴板。 var trans = Components.classes"@mozilla.org/widget/transferable;1".createInstance(Components.interfaces.nsITransferable);if (Init){ 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的Transferable函数,但是得到了同样的非验证报告。
Mozilla的一个编辑告诉我要写这篇文章,但它仍然没有验证。
我也试过,简单地说:
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");Validator不报告任何错误--只报告此警告。一切正常运转。Mozilla更新了他们的壁虎引擎,他们希望开发者能够与新标准相匹配。
在我的用法中,我们希望能够使用剪贴板的内容,这些内容可能也是从应用程序外部获取的,因此我们确实希望用null而不是window调用init函数。
任何建议都会很棒!
发布于 2013-02-14 15:44:00
trans.init(null)在某些情况下是有效的,例如在您的情况下。如果在错误的情况下使用,也会导致隐私泄漏,因此验证器会将所有的用途标记为可能需要更改。因此,在这种情况下,您可以忽略它。
https://stackoverflow.com/questions/14533593
复制相似问题