今日もガクリ('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)(24,759)
contents
most viewed (1182745)
categories
archives
recent posts
recent updates
recent comments
recent trackbacks
912T ASUSTeK ASUSTeK Crosshair IV Extreme blog CSS DARK SOULS DARK SOULS 3 Darksouls3 DarksoulsIII DARK SOULS III DISM Euro Truck Simulator 2 Everquest II firefox foobar2000 game Install internet KB2990941 KB3087873 mod panels ui PCゲーム PHP PX-Q3PE Raid skin SoftBank software SpeedFan Spinel Steam TPS trailer truck TvRock TVTest Windows Windows 7 Win Toolkit WordPress インストール ダークソウルズ 初音ミク 窓辺ななみ
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