!link
by
noromanba
2013-02-04 [2013/02/04 04:41:57]
(Forked from
!link by
rikuba)
toggle enable/disable links by CSS
@@ -1,13 +1,38 @@
/*
- * @title GM_let
- * @description create new Hatena:Let by GM_registerMenuCommand
+ * @title !link
+ * @description toggle enable/disable links by CSS
* @include http://*
* @include https://*
- * @contributor mafucode http://let.hatelabo.jp/mafucode/let/gYC-x5SDvu69FA (Fork of)
* @license MIT License http://opensource.org/licenses/MIT
+ * @contributor noromanba http://let.hatelabo.jp/noromanba/let/gYC-x4-VhvKdWA
+ * @contributor rikuba http://let.hatelabo.jp/rikuba/let/gYC-y5Ca8MWVPg (Fork of)
+ * @author noromanba http://flavors.me/noromanba
* @require
- * @private
*/
-GM_registerMenuCommand('Hatena::Let', function () {
- GM_openInTab('http://let.hatelabo.jp/l');
-});
+
+// TODO toggle UI, state into a closure
+(function (doc) {
+ var parent = doc.head || doc.body || doc.documentElement;
+ var id = 'bookmarklet-disable-link';
+ var style;
+ if (!(style = doc.getElementById(id))) {
+ style = doc.createElement('style');
+ style.id = id;
+ style.charset = 'utf8';
+ parent.appendChild(style);
+ }
+
+ if (style.textContent) {
+ style.textContent = '';
+ return;
+ }
+ // TODO ignore anchor of hasn't textnode e.g. <a href="/"><img></a>
+ style.textContent = [
+ 'a[href] {',
+ 'pointer-events: none;',
+ 'outline-style: dotted;',
+ 'outline-width: 1px;',
+ 'outline-color: invert;',
+ '}'
+ ].join('\n');
+})(document);
/*
* @title !link
* @description toggle enable/disable links by CSS
* @include http://*
* @include https://*
* @license MIT License http://opensource.org/licenses/MIT
* @contributor noromanba http://let.hatelabo.jp/noromanba/let/gYC-x4-VhvKdWA
* @contributor rikuba http://let.hatelabo.jp/rikuba/let/gYC-y5Ca8MWVPg (Fork of)
* @author noromanba http://flavors.me/noromanba
* @require
*/
// TODO toggle UI, state into a closure
(function (doc) {
var parent = doc.head || doc.body || doc.documentElement;
var id = 'bookmarklet-disable-link';
var style;
if (!(style = doc.getElementById(id))) {
style = doc.createElement('style');
style.id = id;
style.charset = 'utf8';
parent.appendChild(style);
}
if (style.textContent) {
style.textContent = '';
return;
}
// TODO ignore anchor of hasn't textnode e.g. <a href="/"><img></a>
style.textContent = [
'a[href] {',
'pointer-events: none;',
'outline-style: dotted;',
'outline-width: 1px;',
'outline-color: invert;',
'}'
].join('\n');
})(document);
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。