ユーザビリティ専用スレ

このエントリーをはてなブックマークに追加
909Name_Not_Found
>>902-908
ブラボーです。
以上、まとめると以下のとおりですね。

【スクリプト】

// 2channerer's navigator
// ©right 900-san at usability-thread , 290-san & 315-san at accesskey-thread in webboard 2002. All rights reserved.


var keys = new Array();
keys["start"] = "S";
keys["next"] = "N";
keys["prev"] = "P";
keys["contents"] = "C";
keys["index"] = "I";
keys["glossary"] = "G";
function navi()
{
var links=document.getElementsByTagName("link");
var navi=document.createElement("ul");
navi.className="navigation";
navi.title="navigation";
var panel=document.getElementById("NavigatorPanel");
for (var i = 0; i < links.length; i++) {
var item=navigatorItem(links.item(i));
if(!item) continue;
navi.appendChild(item);
}
panel.appendChild(navi);
}
function navigatorItem(linkElement)
{
if(!linkElement.getAttribute("href")) return null;
if(!linkElement.getAttribute("rel")) return null;
if(linkElement.getAttribute("rel").toLowerCase().indexOf("stylesheet")>=0) return null;
var listItem=document.createElement("li");
var anchor=document.createElement("a");
if(linkElement.getAttribute("type")) anchor.setAttribute("type", linkElement.getAttribute("type"));
if(linkElement.getAttribute("charset")) anchor.setAttribute("charset", linkElement.getAttribute("charset"));
if(linkElement.getAttribute("hreflang")) anchor.setAttribute("hreflang", linkElement.getAttribute("hreflang"));
if(linkElement.getAttribute("rev")) anchor.setAttribute("rev", linkElement.getAttribute("rev"));
anchor.setAttribute("rel", linkElement.getAttribute("rel"));
anchor.setAttribute("href", linkElement.getAttribute("href"));
var key=getAccessKey(linkElement.getAttribute("rel"));
if(key) anchor.setAttribute("accessKey", key);
if(linkElement.getAttribute("title")) anchor.appendChild( document.createTextNode(linkElement.getAttribute("title")));
else anchor.appendChild(document.createTextNode(linkElement.getAttribute("rel")));
listItem.appendChild(anchor);
return listItem;
}
910909のつづき:02/04/17 21:01 ID:VxQvS04z
function getAccessKey(relString)
{
return keys[relString.toLowerCase()];
}
function Initializer()
{
function Initializer_handleEvent(e)
{
navi();
}
this.handleEvent=Initializer_handleEvent;
return this;
}
if(window.addEventListener) window.addEventListener("load", new Initializer(), true);
else if(window.attachEvent) window.attachEvent("onload", navi);



【使い方】

1) 上記スクリプトを、適用したいXHTMLファイル内のscript要素内に書くか別ファイルからインクルード。

2) 同XHTMLファイルのbody要素内の、任意の場所に<div class="NavigatorPanel"></div>とでも書けば、
  <link rel=… がリストに変換されたものがそこに現れます。