2008年8月28日のブックマーク (2件)

  • XUL Apps > Tips > nsIFileURLのインスタンスを作る - outsider reflex

    nsIURIのインスタンスには2種類ある XULを扱っていると、nsIURIというインターフェースを使う必要のある場面が頻繁に出てきます。大概のメソッドでは、Web上のリソースもローカルのファイルも位置情報をこのnsIURIの形で渡してやれば万事OKなのですが、希に処理に失敗する場合があります。僕は、バックアップしておいた情報からブラウザのヒストリを復元する処理でこの問題に引っかかりました。 これは、「nsIURIのインスタンス」として生成したインスタンスはそのままではnsIFileURLとして扱えないからというのが原因でした。詳しく言うと、nsIURIのインスタンスは Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI) で生成することが

  • XUL Apps > Tips > ファイル選択のダイアログ - outsider reflex

    ファイルを開く・保存する際のファイル選択ダイアログは、 nsIFilePicker を使うと簡単に実現できます。動作の規準は Windows のコモンダイアログなので、以下の説明も、 Windows でのファイル操作を想像するとわかりやすいかと思います。 インスタンスの生成 まず、 nsIFilePicker のインスタンスを作ります。 getService() ではなく createInstance() メソッドを使っているのに注意してください。(インスタンスを生成しないと、ファイル選択のダイアログを何度も開くときに問題が起こります) const nsIFilePicker = Components.interfaces.nsIFilePicker; const FP = Components.classes['@mozilla.org/filepicker;1'] .createIns