朝顔日記
userChrome.xul で ToggleStyle
Firefox の拡張機能 userChrome.js のスクリプトに Sub-XUL Loader というスクリプトがあります。どういうものかというと、Sub-XUL loader をロードしておくと、プロファイルの chrome ディレクトリ内にある、*.uc.xul というファイルを XUL オーバーレイファイルとして読み込んでくれるというものです。
私の場合、userChrome.js ファイルには、フォーラムの userChrome.js スレ の zeniko 氏の発言にある、Sub-Script Loader のみ書いていたのですが、今回この Sub-XUL loader も追加してみました。(Firefox の拡張機能、userChrome.js の私の使い方 参照のこと)
Sub-Script Loader が更新され、現在は、Sub-XUL loader の機能を取り込んだので、Sub-XUL loader は不要になったようです。
これでお手軽に XUL ファイルを使えるようになったので、試しにこないだ作った Firefox 拡張機能 ToggleStyle を、userChrome.js で使えるようにしてみました。名付けて、ToggleStyle.uc.xul
<?xml version="1.0" encoding="UTF-8"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript">
function setStyleDisabled(disabled, isFromCheckbox){
getMarkupDocumentViewer().authorStyleDisabled = disabled;
if(!isFromCheckbox) TS.setCheckState();
}
var TS = {
toggle : function(){
var isChecked = document.getElementById("styletoggle").checked;
setStyleDisabled(isChecked, true);
},
setCheckState : function(){
if(!document.getElementById("styletoggle")) return;
document.getElementById("styletoggle").checked = !getMarkupDocumentViewer().authorStyleDisabled;
}
};
var appcontent = document.getElementById("appcontent");
appcontent.addEventListener("select", TS.setCheckState, false);
</script>
<statusbar id="status-bar">
<statusbarpanel id="StyleToggle-Checkbox">
<checkbox onclick="TS.toggle();" id="styletoggle" label="CSS" checked="true" tooltiptext="toggle css"/>
</statusbarpanel>
</statusbar>
</overlay>
拡張のほうとは違って、ツールバーではなくステータスバーにページスタイルをオン・オフするためのスイッチを追加します。で、このままだとチェックボックスなので、例によってアイコン化。userChrome.css もしくは、Stylish で以下のスタイルをあてがいます。
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
checkbox[id="styletoggle"] {
margin:0 !important;
padding:0 !important;
}
checkbox[id="styletoggle"]:focus > hbox {
border-style:none !important;
}
#StyleToggle-Checkbox, statusbar[id="StyleToggle-Checkbox"] * {
margin:0 !important;
padding:0 !important;
}
checkbox[id="styletoggle"] > image, checkbox[id="styletoggle"] label {
display:none !important;
}
checkbox[id="styletoggle"] > hbox > image {
min-width:21px !important;
height:14px !important;
border:1px solid #999 !important;
background: transparent none center center no-repeat !important;
}
checkbox[id="styletoggle"][checked="true"] > hbox>image {
border:1px inset #ccc !important;
background-color:#ffcccc !important;
}
checkbox[id="styletoggle"] > hbox > image {
width:21px;
background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOBAMAAADd6iHDAAAAA3NCSVQICAjb4U%2FgAAAALVBMVEX%2F%2F%2F8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMEkjCrAAAAD3RSTlMAESIzRFVmd4iZqrvM3e5GKvWZAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIXRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyA0LjDqJid1AAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA4LzA2WNdhkAAAAFhJREFUeJxjYCAMVBgYnBiYHIAszh2PZLsm1PQaMDD4MnT4MDRsZQEKdzAwSF5jiJ0EVNDJoMagcZEhpoCBwU6gs5LhyCPWDQwMbKc3Sp1pyNljQIRlcAAAAFsUG1nwjUQAAAAASUVORK5CYII%3D") !important;
}
まぁ、スタイルはお好みで適当に。
しかし、ここまで何でもありになっていいのでしょうか。:p)
「userChrome.xul で ToggleStyle」へコメントをつける
この記事のリンク元
- http://space.geocities.yahoo.co.jp/gl/alice0775/view/20070217
- http://b.hatena.ne.jp/t/userchrome
- http://noma.s4.xrea.com/blosxom/pc/
- http://b.hatena.ne.jp/entry/1968327/%E6%9C%9D%E9%A1%94%E6%97%A5%E8%A8%98%20-%20Firefox%20%E3%81%AE%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%80%81userChrome.js%20%E3%81%AE%E7%A7%81%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
- http://b.hatena.ne.jp/entry/3329305
- http://b.hatena.ne.jp/fullbrowser/
- http://b.hatena.ne.jp/entry/3381705/%5BuserChrome.js%5D%5Bfirefox%5D%E9%9A%8E%E5%B1%A4%E3%82%921%E3%81%A4%E4%B8%8A%E3%81%AB%E4%B8%8A%E3%81%8C%E3%82%8BGo%20Up%E3%82%92%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%2019:07%20%EF%BC%9AWDF
- http://my.yahoo.co.jp/
- http://b.hatena.ne.jp/tiro23/userChrome.js/
- http://unkar.jp/read/pc11.2ch.net/software/1222168289
- http://clip.livedoor.com/tag/userChrome.js
- http://firefox.geckodev.org/index.php?cmd=read&page=userChrome.js&p=2
- http://firefox.geckodev.org/index.php?cmd=read&page=userChrome.js&word=Status%20Buttons
- http://firefox.geckodev.org/index.php?cmd=read&page=userChrome.js&word=userchrome
- http://firefox.geckodev.org/index.php?cmd=read&page=userChrome.js&word=chrome
- この記事の永続的 URI ならびに トラックバック ping URI
- http://diary.noasobi.net/2006/11/diary_061125a.html


