1

現在表示されている電子メールメッセージの本文にアクセスして何かを実行するカスタムボタンであるXULを使用してThunderbird拡張機能を作成しようとしています。

gDBViewどうやらこれは、Display Mail User Agent拡張機能のように、グローバル変数を使用して可能になります。

var msgURI = null ;

if ( gDBView )
{
  msgURI = gDBView.URIForFirstSelectedMessage ;
}

if ( msgURI == null )
{
  return ;
}

var messenger = Components.classes["@mozilla.org/messenger;1"].createInstance (Components.interfaces.nsIMessenger ) ;
var msgService = messenger.messageServiceFromURI ( msgURI ) ;

残念ながら、私の拡張機能で行を複製すると、次のようになります。

msgURI = gDBView.URIForFirstSelectedMessage ;    

Thunderbirdコンソールから次のエラーが発生します。

gDBViewが定義されていません

これが起こる理由はありますか?そして、これはメール本文にアクセスするための最良の(そして正しい)方法ですか?

4

1 に答える 1

1

ウラジミールが正しく推測したように、スクリプトを間違ったコンテキストで実行している可能性があります。存在することを確認する簡単な方法gDBViewは、メニューで、を押してからTools > Error Console貼り付けてtop.opener.gDBViewから、を押すことEnterです。これは(私にとって)戻ります[xpconnect wrapped (nsISupports, nsIMsgDBView, nsITreeView)]。これは、オブジェクトが実際に存在することを意味します。

于 2012-06-16T22:40:24.917 に答える