今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
2008 / 06
« «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30  » »
archive for 2008年06月24日(火)
Firefox 3 : アドオン keyconfig によるショートカットキー割り当て

Firefox 3 において keyconfig アドオンを使用してのショートカットキーの割り当てです。私は合わせて functions for keyconfig も使用しています

ページのソースを新しいタブに表示

通常、新しいウィンドウにページのソースが表示されてしまいますが、それを新しいタブ内に表示するように変更

  1. var sourceURL = 'view-source:' + content.document.location.href;
  2. gBrowser.selectedTab = gBrowser.addTab( sourceURL );

ページ情報ダイアログ表示

なぜか CTRL + I を押しても、サイドバーにブックマークが表示されてしまうので、ページ情報ダイアログを表示するように変更

  1. BrowserPageInfo();

前のタブ

ファンクションキーでタブの切り替えを行いたいので変更

  1. gBrowser.mTabContainer.advanceSelectedTab(-1,true);

次のタブ

ファンクションキーでタブの切り替えを行いたいので変更

  1. gBrowser.mTabContainer.advanceSelectedTab(+1,true);

コピー URL

現在表示しているページの URL をクリップボードにコピーします

  1. var w = window._content;
  2. var d = w.document;
  3. var txt = d.location.href;
  4. const CLIPBOARD = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
  5. CLIPBOARD.copyString(txt);

コピータイトル

現在表示しているページのタイトルをクリップボードにコピーします

  1. var w = window._content;
  2. var d = w.document;
  3. var txt = d.title;
  4. const CLIPBOARD = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
  5. CLIPBOARD.copyString(txt);

コピーアンカー

現在表示しているページの URL とタイトル等の情報を元に HTML のアンカー要素を生成し、クリップボードにコピーします。本サイトのアンカー要素の生成はコレで行っています

  1. var w = window._content;
  2. var d = w.document;
  3. /* var l = d.documentElement.attributes[0].value; */
  4. var l = '';
  5. var txt = '<a target="_blank" hreflang="' + l + '" href="' + d.location.href + '" title="' + d.title + '">' + d.title + '</a>';
  6. const CLIPBOARD = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
  7. CLIPBOARD.copyString(txt);

3行目がコメントになってますが、ページの言語情報がページによってはうまく取得できないで、ここだけは手入力してます…('A`)

検索バー切り替え↑

検索バーのサーチエンジンをキーボードの入力フォーカスを移す事なく切り替えます。トップの場合は最後の検索エンジンに切り替えます

  1. var search = document.getElementById("searchbar");
  2. var newIndex = search.engines.indexOf(search.currentEngine);
  3. if ( --newIndex < 0 ) newIndex = search.engines.length-1;
  4. search.currentEngine = search.engines[newIndex];

検索バー切り替え↓

検索バーのサーチエンジンをキーボードの入力フォーカスを移す事なく切り替えます。最後の場合はトップの検索エンジンに切り替えます

  1. var search = document.getElementById("searchbar");
  2. var newIndex = search.engines.indexOf(search.currentEngine);
  3. if ( ++newIndex >= search.engines.length ) newIndex = 0;
  4. search.currentEngine = search.engines[newIndex];

選択文字列を検索バーで現在選択されているエンジンで検索

前述の 検索バー切り替え↑検索バー切り替え↓ と合わせて使うととても便利です

  • Web ページ上の文字列を選択した後にアサインしたキーを押す事によって検索エンジンでの検索結果ページを表示します
  • CTRL キーを押しながらの複数選択文字列にも対応
  • サーチエンジンの検索結果は新しいタブに表示されますが、8行目の tabcurrent に変更する事によって、現在アクティブのタブに表示します
  • 検索バーには検索語は表示されません
  1. var sel = window._content.getSelection( );
  2. var s = '';
  3. if ( !sel.rangeCount || sel.getRangeAt(0) == '' ) return ;
  4. for ( i = 0; i < sel.rangeCount; ++i ) {
  5.   s += sel.getRangeAt(i).toString().replace( /^\s+|\s+$/g, '' ) + ' ';
  6. }
  7. s = s.replace(/[\+\s]+$/g,'');
  8. document.getElementById( "searchbar" ).doSearch(s, 'tab');
  • 選択文字列の中に空白が含まれている場合のバグを修正 (12行目)
  • さらにバグ…('A`) どうやら encodeURIComponent は必要ない模様… (12行目)
  • 7行目の修正と全体的に冗長なコードをまとめた

選択範囲を検索

選択文字列(複数対応) を検索エンジン(googleの場合) で検索し、ページを新しいタブに表示します。14 行目を変更する事によって、他の検索エンジンや検索エンジンへ渡す URL パラメーターを変更できます

  1. var win = window._content;
  2. var doc = win.document;
  3. var sel = win.getSelection( );
  4. var s = '';
  5. var sURL = '';
  6. if ( !sel.rangeCount || sel.getRangeAt(0) == '' ) {
  7.   return ;
  8. }
  9. for ( i = 0; i < sel.rangeCount; ++i ) {
  10.   stmp = sel.getRangeAt(i).toString().replace( /^\s+|\s+$/g, '' );
  11.   s += (encodeURIComponent(stmp) + '+').toString().replace(/%20/g,'+');
  12. }
  13. s = s.replace(/\++$/g,'');
  14. sURL = 'http://www.google.co.jp/search?q=' + s + '&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a';
  15. gBrowser.selectedTab = gBrowser.addTab( sURL );

選択文字列の中に空白が含まれている場合のバグを修正 (11行目)

選択文字列を検索バーへ

選択文字列(複数対応) を検索バーの入力ボックスへセットします

  1. var win = window._content;
  2. var doc = win.document;
  3. var sel = win.getSelection( );
  4. var s = '';
  5. if ( !sel.rangeCount || sel.getRangeAt(0) == '' ) {
  6.   return ;
  7. }
  8. for ( i = 0; i < sel.rangeCount; ++i ) {
  9.   s += sel.getRangeAt(i) + ' ';
  10. }
  11. document.getElementById("searchbar").value = s.replace(/^\s+|\s+$/g,'');

検索バーをクリア

検索バーをクリアします

  1. document.getElementById("searchbar").value = "";

Firefox を再起動

Firefox を再起動します

  1. const nsIAppStartup = Components.interfaces.nsIAppStartup;
  2. var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  3. var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"].createInstance(Components.interfaces.nsISupportsPRBool);
  4. os.notifyObservers(cancelQuit, "quit-application-requested", null);
  5. if (cancelQuit.data) return;
  6. Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(nsIAppStartup).quit(nsIAppStartup.eRestart | nsIAppStartup.eAttemptQuit);

再起動時に終了時の状態復元が必要なければ、2~5行目は不要です

internet, JavaScript, softwarecomment (1)trackback (1)(20,164)
contents
most viewed (737017)
categories
archives
recent posts
recent updates
recent comments
  • Alphaziel : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • 泣き虫 : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • zodiac : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
  • Eleftherios Kosmas : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
  • Mike Liwsi : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
recent trackbacks
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie