userscriptからのObjectのClassへのアクセス
JavascriptでObjectのClassにアクセスするとき
var cm = new Comment();
if(cm instanceof Comment){
//
}
と書いてもうまくいきません.
JavascriptからのObjectのメソッドやプロパティへのアクセスを制限するためにXPCNativeWrapperというがわがかぶせてあるためです(詳しくはこのへん).
本来は制限するためにあるのですがこのため上記のような処理を行うことができません.で,googleで調べるとこのへんとかこのへんに「wrappedJSObject」というのを使うとwrapperを引き離してJSObjectを出してくれるようです.
なので
var cm = new Comment();
if(cm.wrappedJSObject instanceof Comment.wrappedJSObject){
//
}
として期待通りの処理が行えるのでした.注意点は比較のほう(instanceofの右辺)もwrappedJSObjectしておかないと駄目だということです.