原文链接https://developer.mozilla.org/zh-TW/docs/XPCNativeWrapper
转载自mozila
这里有一些不能被用在XPCNativeWrapper的一般使用的属性跟程序风格。
1.对一个DOM node或是window物件的XPCNativeWrapper给予或是读取一个on*属性将会丢出Exception。(使用addEventListener取代,并且用event.preventDefault();在你的处理器内假如你之前用了return false;)
2.不能够在XPCNativeWrapper内用window名称存取iframe(e.g.window.framename)。
3.document.all在XPCNativeWrapper内不能用。
4.在XPCNativeWrapper内不行对HTML文件用name存取命名的东西。举例,假如你有并且docWrapper是一个对HTML文件doc的伪装器,那当docWrapper为定义时,doc.foo是一个HTMLFormElement。希望这样做的程序能够使用docWrapper.forms.namedItem('foo')取代。
5.对HTML文件,在XPCNativeWrapper内用id存取node是不行的。因该用getElementById()取代。
6.对HTML form,在XPCNativeWrapper内用name存取input是不行的。想这样做的程序必须使用form.elements.namedItem('foo')取代。
7.对HTMLCollection,在XPCNativeWrapper内用name存取元素是步行的。想这样做的代码必须使用namedItem()方法。注意这个namedItem只回传第一个有name的input元素,即使有很多个有相同名称的元素(e.g. Radio buttons)。
8.同样的,对plugin、pluginArray、或是MimeTypeArray,在XPCNativeWrapper内用name存取items是不行的。你必须使用namedItem()取代。
9.不能经由XPCNativeWrapper呼叫由NPAPI plugin实作的方法。
10.不能够经由XPCNativeWrapper取得(getting)或是设定(setting)由NPAPI plugin实作的属性。
11.不能够经由XPCNativeWrapper呼叫经由XBL binding附加到node上的方法。
12.不能够经由XPCNativeWrapper取得(getting)或是设定(setting)经由XBL binding附加到node上的属性。
13.经由'for(var p in wrapper)'列举XPCNativeWrapper的属性不会列举IDL定义的属性。
14.Object.prototype不在XPCNativeWrapper的原型炼里面。As aresult,变异的Object.prototype被定义在XPCNativeWrapper(更准确一点,这里有proto,parent,count,toSource,toLocalString,valueOf,watch,unwatch,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,defineGetter,defineSetter,lookupGetter,andlookupSetter)。
15.没有实作旧的XPCNativeWrapper有的importXPCNative,
16.不能经由XPCNativeWrapper存取标准类别(例如Function)。要对特定的window的parent建立function和物件,使用window的eval()function。
17.对'expando'的属性使用删除操作元在XPCNativeWrapper会丢出安全性Exceprion。