Home > スポンサー広告 > User JavaScriptの練習 - ページにアクセスキーを設定する

スポンサーサイト

スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Comments:-

Comment Form

Trackback+Pingback:-

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/54-31fdc338
Listed below are links to weblogs that reference
スポンサーサイト from Karafuto Blog

Home > スポンサー広告 > User JavaScriptの練習 - ページにアクセスキーを設定する

Home > user javascript > User JavaScriptの練習 - ページにアクセスキーを設定する

User JavaScriptの練習 - ページにアクセスキーを設定する

user javascript

Opera User JavaScriptの役に立たないスクリプトを書いてます。

XPathを使って、Googleウェブ検索ページにアクセスキーを仕込む。

// ==UserScript==
// @include http://www.google.com/search*
// @include http://www.google.co.jp/search*
// @exclude 
// ==/UserScript==

document.addEventListener('load', function() {
    // 特定の検索言語があればのラベルの値を取得
    var il = document. getElementById('il');
    var ilTitle = '';
    if (il) {
        ilTitle = il.nextSibling.firstChild.nodeValue;
    }
    
    // Unicodeエスケープした言葉は、テキスト入力ボックス
    addAccesskey( 'f', '//input[@name="q"]', '\u30C6\u30AD\u30B9\u30C8\u5165\u529B\u30DC\u30C3\u30AF\u30B9');
    addAccesskey( 'g', '//input[@name="btnG"]', '');
    // Unicodeエスケープした言葉は、ウェブ全体から検索
    addAccesskey( 'a', '//input[@id="all"]', '\u30A6\u30A7\u30D6\u5168\u4F53\u304B\u3089\u691C\u7D22');
    addAccesskey( 'j', '//input[@id="il"]', ilTitle);
    addAccesskey( 'i', '//a[@class="q"][contains(@href,"images.google")]', '');
    addAccesskey( 'n', '//a[@class="q"][contains(@href,"news.google")]', '');
    addAccesskey( 'm', '//a[@class="q"][contains(@href,"maps.google")]', '');

    // アクセスキーを設定する関数
    function addAccesskey( key, query, title){
        var node = document.evaluate(query, document, null,XPathResult.FIRST_ORDERED_NODE_TYPE, null);
        if ( node.singleNodeValue) {
            node.singleNodeValue.setAttribute( 'accesskey', key );
            if ( title) {
                node.singleNodeValue.setAttribute( 'title', title );
            }
        }
    }
}, false);

ilTitleは、検索言語('il'id)のラジオボタンの次のノード(ラベル)のテキストを取り出している。

var ilTitle = il.nextSibling.firstChild.nodeValue

addAccesskey関数は、XPath式にマッチした最初の要素にアクセスキーを設定する。

引数 keyにアクセスキー、引数 queryにXPath式、引数 titleにタイトルを設定。

結果の型に FIRST_ORDERED_NODE_TYPEを指定すると、 singleNodeValueプロパティで XPath式にマッチした最初のノードにアクセスできる。

Googleウェブ検索に設定したアクセスキー
アクセスキー設定した要素
fテキスト入力ボックス
g検索ボタン
aウェブ全体から検索のラジオボタン
j設定した検索言語からの検索のラジオボタン
iGoogle画像検索のアンカー
nGoogleニュース検索のアンカー
mGoogle地図検索のアンカー

Operaのアクセスキーのリストで、ラジオボタンにはタイトル属性を付けないと 'null'が表示される。

テキスト入力ボックスはタイトル属性を付けても、入力した言葉(value属性の値)が出る。

Comments:0

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
http://karafuto50.blog117.fc2.com/tb.php/54-31fdc338
Listed below are links to weblogs that reference
User JavaScriptの練習 - ページにアクセスキーを設定する from Karafuto Blog

Home > user javascript > User JavaScriptの練習 - ページにアクセスキーを設定する

おまかせリンク(R)
全記事表示リンク
Search
Meta
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。