/* 外部Style Sheet切替用JavaScript */ /* ============================================================== 參考: 「ブツ03:スタイルひとつください」 http://www.xinada.ne.jp/~handa/nanka/bt03 「JavaScript for CSS」 http://east.portland.ne.jp/~sigekazu/css/javascript9.htm 「Sylphied's Style Sheet Selector Script (S5)」 http://homepage.mac.com/syect/~sylphied/ NN6はメニューからスタイル切替を操作できるので、基本的にWinIE5.5以降用として改造した。 なほMacIE4.0(4.5から可)はrel="alternate stylesheet"であるLINK要素を認識しない由。 →Firefox以外にBlinkブラウザー(Google Chrome、Microsoft Edge)でも動作可能にSwitchStyle0.jsを再改造。 https://teratail.com/questions/rbh54l6goho0n1 「ChromeやEdgeで代替スタイルシートを切換可能にするには」 ============================================================== */ // /************************************************************* // Kan『三日坊主++の部屋』 http://east.portland.ne.jp/~sigekazu/css/javascript9_4.htm // → https://web.archive.org/web/http://east.portland.ne.jp/%7Esigekazu/css/javascript9.js // /******************************************************************************************/ /* 初期設定 */ var d = document; /////////// if (document.styleSheets/* && !(navigator.userAgent.indexOf("Mac_PowerPC") != -1 && navigator.userAgent.indexOf("MSIE 4") != -1)*/) { main(); } function main() { sheetTitles="";//sfTitles=[]; setSS();//Netscape6問題 http://east.portland.ne.jp/%7Esigekazu/css/javascript9_2.htm // ChangeStyleAlter(sheetTitle);//(sheet) window.onload=fIns;//insertForm自動插入。 //onloadのSafari3.1對策は http://usamimi.info/%7Eide/programe/stylechange/ } // //////////////////////* スタイルシートの一覽を取得する *//////////////////////////////////// //* いちゆう http://critical.s6.xrea.com/web/cssselect.html */ //* 「代替スタイルシートに萌え〜」 https://mevius.2ch.net/test/read.cgi/hp/991400015/549-588 */ // ******************************************* function setSS() {//(sheetTitle) // dS = document.styleSheets; sS = d.all && d.all.tags('link') || document.getElementsByTagName('link');//dSの代り、Chrome對策 if(sS) {/// var sheetTitle = new Array(); for(/*var*/ i=0; i-1) var rel = sS[i].getAttribute("rel").toLowerCase();// sS[i].rel.toLowerCase(); if (rel == 'stylesheet' && !sS.preferredTitle) {sS.preferredTitle = sS[i].title;} else if(/alternate/i.test(rel)/**/ && !sS.alternateTitle) // ~rel.indexOf('alternate') sS.alternateTitle = sS[i].title;//不用? /* sS.alternateTitles+=sS[i].title; sS.alternateTitles+=",";*/ } if (!sS.preferredTitle) sheetTitles='初期設定,'+sheetTitles;/// .unshift('Default') sheetTitles+='スタイル解除';/// .push('NoStyle'); sheetTitle=sheetTitles.split(","); /* sS.alternateTitle=alternateTitles.split(",");*/ } } // ///////////////////////* スタイルシートの動的切り替へ */////////////////////// //* 炭色地帯 http://www.usamimi.info/%7Egeko/arch_web/02_sample/018/index.html */ //* 「代替スタイルシートに萌え〜」 https://mevius.2ch.net/test/read.cgi/hp/991400015/404-434 */ //* confetto「代替スタイルシート切替JavaScript」 http://confetto.s31.xrea.com/misc/switchstyles */ // ******************************************* function ChangeStyleAlter(selectedTitle) {//(sheetTitle)(ssTitle)( name ) if(!sS) return;// /* if(sheetTitle == 'NoStyle'){disableStyleElementAndSheet();}// else if(dS) { for(var i=0; iとの二重生成に。 /* insertForm(); } function insertForm(){ */ nHTML = fMakeHTML();///insertForm() 自動插入 var nbody = document.getElementsByTagName('body')[0]; if (d.all) nbody.insertAdjacentHTML('afterbegin', '
'+nHTML+'
'); else { nForm = document.createElement('form');////'div' 選擇フォーム入り要素を生成 nForm.action = ""; nForm.id = 'StyleChangeForm'; nForm.style.cssText = "text-align:center;background:#dfdfdf;clear:both;direction:ltr;"; nForm.style.margin = "0"; nForm.onsubmit = function(){return DoSelect(this);};//DOMレベル0でのイベントハンドラ登録 nForm.innerHTML = nHTML;//// nbody.insertBefore(nForm, nbody.firstChild);// 選擇フォームを追加。body先頭、#navbarの前へ。 } }//// function fMakeHTML() {/////insertForm() var select = createSelect(); if (document.styleSheets)// window.onload { var nHTML= '\n\n' } return nHTML; }///// function createSelect(){ var select = 'スタイル選擇:'; return select; } // このファイルが意に反して表示された場合、ブラウザーの戻るボタンを押してみて下さい。-->