Stylishってこんなこともできるんだな
とりあえず、FirefoxのUIであるXUL(ズールって読むらしい)がどうなってるのか見てみる
アドレスバーに
を入力すると見れた
んでもって、Stylish側のコードを書くときのnamespaceは
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
編集したい場合はスタイルの管理から開いて修正する
家の洗濯機周りの床に薄っすら水がにじんでいた
水漏れかと思って知り合いの詳しい人に見てもらったら
水道管が結露を起こしているのが原因らしい
と、いうことで、ホームセンターで対策グッズを買いにいったのだが
結露を防ぐテープ?とやらがあるらしいと聞いたのに、どこにもなかった
結局、水道管に巻く筒状のスポンジ?
(ライトカバー、ラバーチューブというらしい)を買った
直径13cm*2m~16cm*2mで300~500円くらいだった。2mは思ったより長くていらないなあ
とりあえず、切り取って取り付けて様子を見てみる
一応、テープタイプというのも気になるのでもう一度探してみようかな
moon child の escape を聞きながらスクリプト作成中
ひとまず完成と言えるが、対応サイトのデザインが変わるらしい?
完全に移行したら、新サイト用も作らなきゃ意味ないな…
デザインが変わっても、もっと柔軟にID引っ張ってこられるように作っておくべきだったな
function getElemAbsolutePosition(ctrl){ try { var rect = (function (elem) { var html = document.documentElement; var rect = elem.getBoundingClientRect(); var left = rect.left - html.clientLeft; var top = rect.top - html.clientTop; return { left: left, top: top }; }) (ctrl); _CONTROLS.top = rect.top; _CONTROLS.left = rect.left; } catch (e) { } }
保存ボタンを押したときの結果tooltip表示位置に使用
スクリプトが形になってきた!
JavaScript 文字列のエスケープについて - honjarake blog
前回の件の続き
結局、デコードは凝ったことをやめ、replaceした
特殊記号エスケープはCSSのセレクタ用にピンポイントで使う
/* escape */ // HTMLエスケープ function NNSH_escapeHTML(str) { return str.replace(/[&"<>,']/g, function (c) { console.log('esc:' + c); return { '&': '&', '"': '"', '<': '<', '>': '>', ',': ',', '\'': ''' }[c]; }); } // 特殊記号エスケープ function NNSH_escapeEx(str) { return str.replace('\\', '\\\\') .replace('\'', '\\\'') .replace('"', '\\"'); } /* decode */ function NNSH_decodeHTML(str) { return str .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"') .replace(/'/g, '\'') .replace(/,/g, ',') .replace(/&/g, '&'); }
@grant GM_getValue 宣言したのにis not defined エラーが出る
公式からのコピペだし、表記は間違っていない
途中、何回もデバッグを繰り返していたら
デバッガの調子がおかしくなったのかログがでなくなった
その後も、期待通りの動きをしていない
window.load前のhtmlタグみたいに、GM関数のロードのタイミングの問題とか?
とりあえず、try catch してデバッグ用の値で動かしている。(エラー、正常の両方でconsole.log 出してあるが表示されない)
今日は、もう疲れた。ソースもう少しまとめよう・・・
後日、開いてみると、@grant noneに戻っていた
他の部分は修正後の状態だった
宣言だけ修正したら、今後はちゃんと動いたので、ひとまず解決
firefoxの再起動を行って、駄目ならOS再起動したほうが吉
escapeHTML についてここを参考
escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()
これは特殊文字「変換」に当たるかな
まずは、区切り記号をエスケープする前に、区切り記号を何にするか…
CSVのイメージで「,」を使おうと思っていたけど、エスケープする関数とデコードする関数必要だ
上の参考サイトのソースにちょっと足せばいいんだけどさ…
区切り記号を上のescapeHTMLで変換しているものにすればいいんじゃないかって気がしてきた(>とか<とか)
そうすると不備が出るパターンあるかなあ…
エスケープする順番さえ間違えなければいけるだろうか
あと、cssのセレクタに使う場合はソースコード上のエスケープが必要ってことでこれも必須
クオーテーションで囲んだ中に入る文字列なので
基本は「'」「"」「\」の前に「\」付与すればいけるんじゃないかと思う