首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个剪贴板代码不能通过Mozilla验证?

为什么这个剪贴板代码不能通过Mozilla验证?
EN

Stack Overflow用户
提问于 2013-01-26 03:35:31
回答 1查看 168关注 0票数 2

药膏!当我在我的插件上尝试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

代码语言:javascript
运行
复制
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的一个编辑告诉我要写这篇文章,但它仍然没有验证。

我也试过,简单地说:

代码语言:javascript
运行
复制
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函数。

任何建议都会很棒!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 15:44:00

trans.init(null)在某些情况下是有效的,例如在您的情况下。如果在错误的情况下使用,也会导致隐私泄漏,因此验证器会将所有的用途标记为可能需要更改。因此,在这种情况下,您可以忽略它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14533593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档