― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
 記事の件名: about:blankの検知方法
投稿記事Posted: 2008年11月14日(金) 14:48 
about:blankのが表示されるのを検知したいのですがうまくいきません。
どうすれば動くようになるでしょうか?

コード:
gBrowser.addEventListener("DOMContentLoaded",blank,false);

function blank(){
 var tab = gBrowser.selectedTab;
 
 if (tab.linkedBrowser.currentURI.spec == "about:blank"  ) {
  alert("About:Blank!!");
 }
}


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2008年11月17日(月) 18:20 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
実際に試してみましたが、拡張機能のコードの一部としてブラウザウィンドウの中で実行した限りでは、about:blankが表示された時にアラートが出ました。

* 何をしようとして、そうしているのでしょうか?
* sakeさんが期待している結果はどんな結果ですか?(なるべく詳しく)

といった情報があると、アドバイスも出しやすくなるかと……

もし、コードを実行する場所をそもそも間違えているということであれば、「Firefox拡張機能開発チュートリアル( http://piro.sakura.ne.jp/xul/doc/tutorial/ )」や「Firefox 3ではじめる拡張機能開発( http://gihyo.jp/dev/feature/01/firefox-addons )」などをご覧になってアドオンの作成方法をチュートリアル形式で学ばれるのが良いのではないかと思います。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2008年11月19日(水) 14:14 
>* 何をしようとして、そうしているのでしょうか?
実際には、about:blankが表示されたらホームページを表示させたいのですが、
テスト用にとアラートが出るようにしたいと思っています。


>* sakeさんが期待している結果はどんな結果ですか?(なるべく詳しく)
ロケーションバーにabout:blankを入力する、
新しいタブがabout:blankだったとき、
タブを全部閉じたときにabout:blankが表示される
これらのときにアラートが出るような結果です。

コードの実行はbrowser.xulにoverlayさせるxulファイルで実行すればできるのではないのですか?


通報する
ページトップ
  
引用付きで返信する  
投稿記事Posted: 2008年11月19日(水) 17:02 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
sake さんが書きました:
コードの実行はbrowser.xulにoverlayさせるxulファイルで実行すればできるのではないのですか?


その通りですが、もし例のコードをそのまま書いているとしたら、変数が未定義であるためにエラーになっている可能性があります。以下のようにするなどして、変数「gBrowser」をブラウザウィンドウの初期化完了後に参照するようにしてみてはどうでしょうか。

コード:
window.addEventListener('load', function() {
  window.removeEventListener('load', arguments.callee, false);

  gBrowser.addEventListener("DOMContentLoaded",onTabLoad,false);
}, false);

function onTabLoad(aEvent){
  var doc = aEvent.originalTarget.defaultView.top.document;
  var tabs = Array.slice(gBrowser.mTabContainer.childNodes);
  var loadedTab;
  for each (var tab in tabs)
  {
    if (tab.linkedBrowser.contentDocument != doc) continue;
    loadedTab = tab;
    break;
  }
 if (loadedTab.linkedBrowser.currentURI.spec == "about:blank"  ) {
  alert("About:Blank!!");
 }
}


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2008年11月20日(木) 22:52 
オフライン
Moderator

登録日時: 2006年10月29日(日) 21:56
記事: 472
sake さんが書きました:
コードの実行はbrowser.xulにoverlayさせるxulファイルで実行すればできるのではないのですか?
ですか?と聞かれても、何をどうやっているのか他の人にはすべて見えるわけではないので、そのアドオンを公開する等も含めもっと情報を出すか(何のアプリのどのバージョンで試しているのかさえ、情報がありませんよね。)、あるいは逆に先に自分で確認してほしいところです。

自分で確認するとしたら、たとえば addEventListener() した直後に alert() してみてちゃんとアラートが出るか確認するとか、
javascript.options.showInConsole を true にしていないのであれば true にして再起動してから実行してみて、エラーコンソールにエラーが出ていないか確認するとか。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 5 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[7人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean