« 前のひとこと | トップページ | 次のひとこと »

cocolog:76692463

広告をクリックした先のとある募金サイトが、オーバーレイポップアップを出して来たのに少し憤り、URL に指定された広告を非表示にするための Greasemonkey ユーザースクリプトを書いた。 (JRF 9511)

JRF 2013年6月 4日 (火)

オーバーレイでポップアップを出すのは「乗っ取り」とかに対抗できないからダメだという「ひとこと」は、以前書いた([cocolog:70725852] や [cocolog:71023491])。

AdBlock とか広告を非表示にするやつは、私はどちらかというと嫌っている。こういうのは、新しいタイプの広告に対応するためのメンテナンスが必要なわけで、じゃあ、AdBlock アドオンとか、そもそもブラウザはどういうビジネスモデルにするわけ?…ってところで私は大きな疑問を持っている。

JRF2013年6月4日3437

ネットの最初のころは「ポップアップ広告」をするエロサイトとかがいっぱいあって、そういうのはダメって「モラル」みたいなのがあったのに、最近ではそういうのを大手のサイトがやるようになってきた。じゃあ、やっぱりブラウザもそういう広告出すしかなくなるじゃん…ってね。(私は、ブラウザは広く広告を募るより↓の信託会社とか [cocolog:72357469] の印栞[いんかん]フレームワークを使うシンジケートをスポンサーに付けるべきという考え。)

JRF2013年6月4日0476

《電子署名の替わりに Loaded Magic》
http://jrf.cocolog-nifty.com/software/2011/05/post.html
>国家や信託銀行など合法的な「正義の味方」はブログのプロバイダを味方に付けられるのだから、最終的に有利なのは「正義の味方」だろう。<

keyword: 信託

JRF2013年6月4日9340

……。

その募金サイトは難民の子供写真を使っていて、まず、子供が不幸にある「作為ある写真」で金を得ようとする、まさに児童ポルノの構図じゃないか…という批判を展開するのを思い付いた。

この、児童虐待が難民の文脈を含みうる(から児童ポルノ禁止反対!)というは、どこかで誰かが論じてた(私が書いたのは見つからないが…)のだったか。

keyword: 児童ポルノ

このあたりは難クセに近いものだという自覚はあるので、ここには書いちゃったけど、思い付いてすぐブクマ…とはしなかった。

JRF2013年6月4日7214

……。

ただ、募金広告が EU の反体制派支援開始という報道にあわせたかのように多くなったのもイヤーな感じがある。震災関連の補助金が話題になってるのもイヤな感じだ。

JRF2013年6月4日7615

それは書いちゃうと、シリア情勢に関する募金だったのだが、その報道を写真や映像で見ると、大統領が顔写真をモザイクに使った国旗の前で演説する様子や、デモで「Freedom」を攻撃してたりして、メディア用の作為性がすごいのが気になっている。それが隠しているものがなんなのか…よくわからない。前に↓と書いた。

JRF2013年6月4日9973

[cocolog:72927296]
>シリアで民兵が首切り虐殺をしたというニュース(↓)も受けている。いろいろ見てるとデマ等も入りまじり扱いに注意を要するニュースのようだが、旧日本軍の「虐殺」でもそうだったが、操作されやすい映像の真偽よりも、それが起きているなどというときは少なからず人死には起きていると考えないと誤る。<

JRF2013年6月4日3166

……。

で、結局、募金はまだしてない。一つは上のようなことがあったからだし、また一つは匿名で募金できないのもいやだったから。そしてさらに、シリアで問題になってるのは、そういう支援の仕方が何か違うということなんじゃないかという思いが残るから。

変に金銭的に解決しようとしてしまうことへの批判や、ネットをどうにか使えないかという模索というところに、時代性があるのではないか。自分の恵まれた境遇に引きよせすぎかもしれないが、そういうメッセージを報道が投げかけてきているように思う。

JRF2013年6月4日3419

もちろん、一介の普通人にものすごい関与が求められているわけではないのはわかる。イラクで日本人がつかまった事件や、最近でも報道関係者が殺されたことにメゲず、若い人がそういうところに関与したいというならすばらしいことだが、こと「一般ピープル」の一人である私に限れば、多くのことは求められていないはずだ。

JRF2013年6月4日2915

……。

だから、私が今回たまたま出あっておかしいと感じたオーバーレイポップアップ、その「作為性のおしつけ」にせめて何か対抗できないかと考えた。

JRF2013年6月4日4202

決して経済的な試みを阻害するわけでもなく、かつ、表現の自由を阻害するわけでもなく、それでも、そこからくる苦しみを柔らげられればいい…。

大したことはできないが、だからこそ経済的に問題とならない。オーバーレイを消すのは、P2P に表現に注意を促せれば、自由を阻害するまでにはいたらないはずだ…。

JRF2013年6月4日0396

……。

まず、例えば、URL で CSS を指定できたりしてノーアド(広告非表示)なブクマとかできないか。…と考えた。

でも、メカニズムとしては、今そういうのはできないはず。

JRF2013年6月4日2868

次に、《勝手に PR》でノーアドにする Greasemonkey スクリプトを公開した上で、それを使って募金するときは、最初にしようと思った金額に +333 円して下さい…みたいなことをしようかとも思った。

または、使われるごとに自分の募金額を(上限あり)で増やすとか。額は少額だけど、先にした額の2倍までといったような上限のかけかたなら一般性があっていいかも…。

JRF2013年6月4日4464

いや、どうせなら、URL をチェックして、次のノーアドを決めるような Greasemonkey フレームワークを作ってもいいが…。

JRF2013年6月4日2918

でも、こういうのも「一般ピープル」には運動性が強すぎるか…ということで、オーバーレイポップアップが出たところを写真にとっておき、オーバーレイがないところにリンクして、ひとことを書くぐらいが、妥当なところかな…。

…と思ったところ、オーバーレイがなくなっていた。

JRF2013年6月4日0281

……。

で、ちょっと考えを巻き戻して、ノーアドにする Greasemonkey フレームワークを作ることを考えた。

JRF2013年6月4日7663

要は、消したいオブジェクトの場所を指定して、そこが消せればよく、ポップアップ広告なら、自動でそこをクリックしたことにできればよい。ブクマやリンクするとき、そういった指定をリンクに含めることができればよい。

JRF2013年6月4日6349

だから、必要なのは二つ。

1. 消したいオブジェクトをクリックすると、「指定」を自動生成し現在のlocationに足すスクリプト。(「指定生成スクリプト」と呼ぶ。)

2. リンクの指定にしたがってオブジェクトを消すユーザースクリプト。

JRF2013年6月4日8639

このうち、2 はとても簡単なものでいい。これは作ったそばからパブリックメイン程度にできるんじゃないか。…ということで、これのみ、さっき作ってみた。

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url.user.js

今回はコンセプトのみと考えていただきたい。でも、2 のスクリプトは、こういった小さいもので、デファクトスタンダードを目指すパブリックドメイン仕様ほとんどそのまんまであればいいと思う。この部分だけは商売っけなくできることが何より重要。

JRF2013年6月4日6646

凝ったことをやりたければ、1 の指定生成スクリプトを凝ればいい。自動学習して、リンクをできるだけ小さくして、ツールボックスを使いやすくして…、そのツールボックスには広告があってもいいんじゃないか?

JRF2013年6月4日9352

こういった枠組、普段 AdBlock を使ってない私が知らないだけで、既にあるのかもしれないな…。

JRF2013年6月4日4779

……。

今回、作ったものの指定の仕方を少し説明。例として以下のリンクを使う。

《Virtua Fighter 5 FS コスプレ:その他 編 [ JRF の私見:雑記 ]》
http://jrf.cocolog-nifty.com/column/2012/12/post-2.html

JRF2013年6月4日6417

URL に no_ad=~ というパラメータを付けて呼び出すと、それを解釈して対応するオブジェクトを消したり、クリックしたりするのが、上の no_ad_url.user.js。

no_ad=~の~の部分は、id:~ とあればその id のオブジェクト、img:~ とあればその名前を持つイメージ、xpath:~とあれば XPath で指定したオブジェクトを消して、消したところに大きな赤いバッテン(×)を描く。no_ad=click:~であれば XPath で指定されたところをクリックする。

JRF2013年6月4日2935

例えば、先の URL の最初のイメージを消すときは、次のようにする。

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?no_ad=img%3A/column/images/thumbnail-Others.jpg

JRF2013年6月4日6829

最初のイメージをクリックして、ブラウザに拡大表示させるには、次のようにする。

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?no_ad=click%3A//a%5Bimg/@src=%27/column/images/thumbnail-Others.jpg%27%5D

JRF2013年6月4日2904

ただ、今回のものは、ロード後のスクリプト呼び出しの順番の関係で、今回問題となったポップアップに対応できるかは微妙なところ。

そういったこともあって、「コンセプトのみ」という言い方に留めている。すべてのサイトで効くようにしているあんまりりお行儀のよくないスクリプトなので、よほど必要がないなら、今回は以上のテストが終ったら、削除しておくことをオススメする。

JRF2013年6月4日6971

……。

いちおう、今回、参考にしたサイトを挙げておく。もちろん、これ以外にも JavaScript の基礎的な「いつものところ」を参考にしている。

《JavaScriptの動かないコード (中級編):clickイベントを強制的に発生させたい (fireEvent/createEventの使い方) - 主に言語とシステム開発に関して》
http://d.hatena.ne.jp/language_and_engineering/20090907/p1

《Java 入門 | XPath》
http://msugai.fc2web.com/java/XML/XPath.html

JRF2013年6月4日7947

《Adblock Plus | Firefox アドオン | Mozilla Japan の公式アドオン紹介サイト》
https://addons.mozilla.jp/firefox/details/1865

《Greasespot》
http://www.greasespot.net/

JRF2013年6月4日1501

修正 [批判を展開するのを思い付いた。]→[批判を展開するのを思い付いた。各国には文化があり、「おぞましさでシャッターしか押せない」という演出より、想像で補ったマンガのほうが真に迫った表現ができることもある!…とかそんな感じの。]。

JRF2013年6月4日9208

……。

セキュリティに問題があるのは認める。

Cookie がからんでる状況とか、行った先の違うドメインでクリックされないとできないようなことまで、不注意にリンクを踏んだだけでやったことにされてしまうことがありえる。

JRF2013年6月4日4216

ノーアドにするのに、今回、css で display:none、つまり、単純に非表示にする方向でなく、バッテンを付けたのは、[cocolog:72187474] で>児童ポルノブロッキングそのものは仕方がないとしても、ブロックしたときにその旨がわからないのはまずい。<と考えてたのを受けて。

JRF2013年6月4日3240

ところが、オーバーレイポップアップをバッテンで消そうとしたら、全画面がバッテンになってしまう。この場合は、display:none にしたほうがいい。でも、今回は上の理由もあって、そうせず自動クリックを可能にするよう舵を切った。(将来、display:none にする方法を取り入れるかもしれないけど。技術的にはそっちのほうがむしろ簡単。)

JRF2013年6月4日9242

自動クリックを擁護する理由をあえて考えてみる。

障害者のブラウジングをネットごしに補助したいといったとき、チャットで押すべきところを指定してるんだけど、字が小さかったりして、そこだけ見つけられない様子があるというときに、「とにかく、この URL をクリックして」と自動クリックされるようなリンクを示す。…といった補助の形式は、自立支援を是とする以上、ないと困るんじゃないか?

JRF2013年6月4日8661

また、ネットごしに子供にサービスの利用を促すとき、子供に「I Agree」を押させたくない、むしろこちらが指定した「I Agree」を自動クリックするリンクを踏ませたほうがいいということもあるんじゃないか?そんな簡単に「クリックラップ契約」に法的意義を認めさせるべきでないというのは一理あるけど、自分はそういう生き方をしても子供はこの先どういう選択をするかわからないわけで、そういうところをホイホイ押すよう教えるのは、また別の問題があると思う。

JRF2013年6月4日6048

独裁者が、海外にいる自国民に SNS を通じて特定のクリックを強制する…といったことにアドオンレベルだとなかなか柔軟に対応できないが、Greasemonkey スクリプトであれば、その改造は容易で、相手の意図をくじくチャンスを作れるかもしれない。

JRF2013年6月4日8742

リンクを押す者の選択権が比較的強い今回の方式なら、2者の間で信用があれば、自動クリックを使っていいのではないか?…といったところ。

もちろん、リンクを押す者が使うブラウザがヴァーチャルなものに強制されていて、押した結果しか見れなくなる可能性もある。でも、このスクリプトのデフォルトでは、no_ad されたことはサイトには伝わる形になっている。「彼ら」も何がしかの規制があって、リンクを書き換えられないなどあれば、別のリーチの仕方を考えるチャンスが生まれるかもしれない。

JRF2013年6月4日8481

……。

No Ad URL を更新。バージョン 0.2。上のリンクを差し替えた。

URL の linker というパラメータで、誰がリンクしたかを示せるようにし、no_ad_url.user.js の変数で指定されたユーザーのときは無条件で許可したり、命令を無視したり、特に指定のないときは、confirm ダイアログを出して尋ねるようにした。

JRF2013年6月7日0403

上ですでに出した例をクリックすると、linker 指定がないので、confirm が出る。

JRF2013年6月7日6308

今回は、例として no_ad_url の「無条件許可」を指定するための no_ad_white_linker 変数に JRF@jrf.cocolog-nifty.com を、「無条件無視」にを指定するための no_ad_black_linker に anonymous@jrf.cocolog-nifty.com を設定してある。

よって、次の最初のものだと、バッテンが出るが、次のものは何もなされずそのままのページが表示される。

JRF2013年6月7日9715

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=JRF@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=anonymous@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg

JRF2013年6月7日0846

将来的な展望として、linker を指定するときに署名みたいなものまでつければ、セキュリティ的にはより安全にすることができる。しかし、linker の名乗りに嘘を書いてはならないと法的にでもなってるならその必要はない。

そして、法的にそうなってるなら、次のようなことが自然になる。

つまり、linker のドメインが、行った先のドメインに一致しているなら、「無条件許可」として扱うというものである。これをよしとするのが no_ad_allow_self_domain_linker 変数で、今回はコンセプトの呈示ということで、これを有効(true)にしてある。

JRF2013年6月7日6828

よって、次の最初の列では confirm ダイアログが出るが、次の例ではいきなりバッテンが出てくる。

JRF2013年6月7日9263

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=jrf@b.hatena.ne.jp&no_ad=img%3A/column/images/thumbnail-Others.jpg

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg

JRF2013年6月7日5740

「法的に名乗りに嘘を書いてはならない」というのは、↓のひとことに関連してそういうこともありうると考えてのこと。

[aboutme:133901]
>私はアフィリエイトのリンクを使わないようにしているが、(…)もっとも大きい懸念は、リンクの書き換えが非合法にならないかということだ。(…)要するに、アフィリエイトリンクは、第三者が新しい市場を示すなどのために勝手に書き換えることを阻害し、本人が意図しなかった囲い込みに利用されるオソレがある…と私は危惧しているのだ。<

JRF2013年6月7日5058

……。

スクリプトを書くために参考にしたページの補足。

《url parsing - Creating a new Location object in javascript - Stack Overflow》
http://stackoverflow.com/questions/3213531/creating-a-new-location-object-in-javascript

JRF2013年6月7日5540

……。

将来的には、linker のところには OpenID みたいなのを使うとよさげではある。

keyword: OpenID

《「OpenIDはメアド同様に複数使い分けてもいい」、OpenID提唱者 - @IT》
http://www.atmarkit.co.jp/news/200707/19/openid.html

JRF2013年6月8日4179

……。

No Ad URL を更新。バージョン 0.3。上の no_ad_url.user.js のリンクの中身を差し替えた。

バグ修正のみ。バッテンにする絵などが複数でも対応できるようにしたつもりだが、それが失敗していたのを修正。

JRF2013年6月9日5406

このバージョンだと、次のような複数指定がちゃんと動くはず。最初のイメージとその次のイメージがバッテンになるはず。

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=JRF@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&no_ad=img%3A/column/images/Harry_0.jpg

JRF2013年6月9日0284

不必要かなと思うのだが、いちおう、前のバージョンも固定リンクでダウンロードできるようにしておいた。

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20130604.user.js (バージョン 0.1)
http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20130607.user.js (バージョン 0.2)

JRF2013年6月9日7145

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20130609.user.js (バージョン 0.3)

JRF2013年6月9日4555

……。

誰かが no_ad_url を使うようにリンクしたものをコピーして使うと、linker を意図せずたばかるようなことになる。

それを回避するには「気を付ける」以外にないのだが、いちおう、そういうときに便利なように、リンクから linker を取り除き(または書き換え)、コピーする JSActions スクリプトを書いた。ついでに、タイトルや引用もいっしょにこの《JRF のひとこと》で使ってるみたいな感じで、コピーしてしまうので、そこがいらないときは、ペーストしたあとに消していただきたい。

JRF2013年6月14日1429

http://jrf.cocolog-nifty.com/archive/javascript/Copy_Title_and_URL.js

↑このファイルをダウンロードして、JSActions の global のところに置けばいい。JSActions の使い方は↓などをご参照あれ…。

《ブラウザからアプリを起動とかイロイロ。Firefox の拡張 JSActions》
http://jrf.cocolog-nifty.com/pr/2012/04/post-5.html

JRF2013年6月14日8179

……。

Copy_Title_and_URL.js を更新。バージョン 0.2。上のリンクの中身を差し換えた。

JRF2013年6月16日7613

また、バージョンごとの固定リンクも作っておいた。

http://jrf.cocolog-nifty.com/archive/javascript/Copy_Title_and_URL-20130614.js (バージョン 0.1)
http://jrf.cocolog-nifty.com/archive/javascript/Copy_Title_and_URL-20130616.js (バージョン 0.2)

JRF2013年6月16日2156

今回の変更で、URL に linkee というオプションを書いてあったときの処理を足した。

ある URL を linker が linkee 向けに no_ad を指定してリンクするという場面を想定している。

JRF2013年6月16日1649

コピーしようとする URL に linker と linkee の指定があり、上のスクリプト内の jsa_defaultLinker が(null でなく)設定されていれば、linkee を指定するように prompt を出し、linker と linkee を書き換えたものをコピーすることになる。

JRF2013年6月16日6281

一方、コピーしようとする URL に linker があるが linkee がない場合は、どちらかと 言えばパブリックなリンクなんだろうと判断し、元の linker を消さず、jsa_defaultLinker を複数指定ということで linker に付け足すようにした。イメージとしては、no_ad 指定に対して「手形の裏書き」をするような感じ。

JRF2013年6月16日4129

また、no_ad や linker がある URL をコピーしようとすると alert でその旨に注意を促すようにした。この注意がうっとうしければ、jsa_needConfirm を false に指定すれば alert は出なくなる。

JRF2013年6月16日2487

例として、↓に linkee を付けた URL。上のスクリプトをダウンロードしたあと、jsa_defaultLinker のところをエディットしたあと、スクリプトを使ってコピー操作をすれば、これまでと違った結果になる。

なお、上までの例には linkee 指定がないので、その結果と比べていただければと思う。

JRF2013年6月16日9318

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=JRF@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&no_ad=img%3A/column/images/Harry_0.jpg&linkee=jrf@b.hatena.ne.jp

ちなみに JSActions スクリプトは Greasemonkey スクリプトと違って変更後には Firefox の再起動を必要とする。

JRF2013年6月16日1500

……。

Copy_Title_and_URL.js を更新。バージョン 0.3。上のリンクの中身を差し換えた。

固定リンクは↓。

http://jrf.cocolog-nifty.com/archive/javascript/Copy_Title_and_URL-20130617.js (バージョン 0.3)

JRF2013年6月17日7578

Confirm をするときは、必ず linkee を尋ねるようにした。また、linkee も linker もないが no_ad がある場合、jsa_defaultLinker が null でなければ、linker を足すようにした。

JRF2013年6月17日7881

使い方としては…、

1. 秘書が no_ad オペレーションを指定して linker を付けず linkee に上司を指定して、リンクを社内 SNS に書く。

2. 上司が自分を linker に指定し、linkee は指定せずに SNS にリンクを書く。

3. そのフォロワーが、その SNS のリンクを見れない家族に linkee を指定し、linker に自分を足してメールをする。

…といった感じを想定。

JRF2013年6月17日6663

ファイル名を変えれば JSActions はそれをコマンド化するので、jsa_defaultLinker や jsa_defaultLinkee を指定したものを別ファイルとして用意しておけば使いやすいだろう。

JRF2013年6月17日4173

……。

あと、あまり使いたくない手段なのだが、no_ad オペレーションは URL に指定するため、相手先のサーバーが何らかの対処をした場合、無効にされうる。

そういったときに、無効になったページで、no_ad オペレーションだけ実行させるには、ページが表示されたあと、JSActions で no_ad_url.user.js に相当するものを走らせればいい。

JRF2013年6月17日6821

例えば、次の pre タグで囲まれた部分を JSActions の global の中に No_Ad_URL.js として作る。"Insert here" と書いた下の行に上の no_ad_url.user.js の内容を最後の no_ad_url(window.location.href); という行を除いてコピー&ペーストする。

JRF2013年6月17日4267

<pre>
// No_Ad_URL.js for JSActions

//begin no_ad_url.user.js (deleting the last line.)
//Insert here.

//end no_ad_url.user.js (deleting the last line.)

var url = prompt("Enter a No_Ad_URL for this page:", "");
if (url != null) {
no_ad_url(url);
}
</pre>

JRF2013年6月17日0757

JSActionsButton も使っているなら、global じゃなく Button のフォルダに置いて適当なアイコン画像を付けてボタンにしてもいいだろう。

例としては、上までの例の元々のリンクを表示したあと、JSActions コマンドとして No Ad URL を実行し、出てきたダイアログに、no_ad 指定のあるリンクをぶちこんで OK すればいい。

《JSActionsButton - + HideAway Firefox +》
http://hideaway.cc/Firefox/wiki.cgi?page=JSActionsButton

JRF2013年6月17日7766

……。

no_ad_url.user.js を更新。バージョン 0.4。上のリンクの中身を差し換えた。

固定リンクは↓。

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20130618.user.js (バージョン 0.4)

no_ad=id:~ の処理をミスっていたのの修正のみ。

JRF2013年6月18日1895

……。

少し実用的な例を作ってみた。以下の URL がそれになるが、JavaScript の Canvas でイメージのマスク処理をしているので、開くだけで結構重い。

《No Ad URL を用いるための例》
http://jrf.cocolog-nifty.com/archive/javascript/example_nau.html

二枚イメージがあって、ロードするときは、両方ともマスク(モザイク)がかかっている。

JRF2013年6月18日2710

一枚目は、ロード後にマスク解除処理を行うようにしている。

Firefox の Greasemonkey の実行タイミングは addEventListener の load イベントよりも早いので、次のように no_ad を仕込めば、一枚目のマスク解除が行われる前にバッテンで消せる。

http://jrf.cocolog-nifty.com/archive/javascript/example_nau.html?no_ad=id:img1

JRF2013年6月18日5086

二枚目は、「確認事項」というボタンがあり、それを押すと文が表示されて「確認」ボタンが押せるだけ。通常は、押しても何も起こらない。

しかし、表示される文には項目ごとに cond1 と cond2 という ID が付されていて、「確認」ボタンを押したときに、もし cond2 の ID をもつ DOM 要素が消えていれば、二枚目のマスク解除を行うようにしている。

JRF2013年6月18日3832

よって、次のように no_ad を仕込んでおくと、「確認事項」ボタンが押された状態で cond2 の部分にバッテンが描かれる。あとは、「確認」ボタンを押せば、マスク解除が起こる。

http://jrf.cocolog-nifty.com/archive/javascript/example_nau.html?no_ad=click://input%5B@id=%27button2%27%5D&no_ad=id:cond2

JRF2013年6月18日7659

いきなり2枚目のマスク解除を行うには、no_ad を次のように仕込めばいい。

http://jrf.cocolog-nifty.com/archive/javascript/example_nau.html?no_ad=id:cond2&no_ad=click://input%5B@id=%27popup-ok-button2%27%5D

JRF2013年6月18日2966

ID の付け方とかは実装でいかようにも変えうるので、あくまでコンセプトの提示ということで…。

JRF2013年6月18日3592

……。

なお、今回、マスク処理のために↓からたどれるソースを参考にした。

《GMask ダウンロードのページ》
http://homepage3.nifty.com/furumizo/gmaskd.htm

JRF2013年6月19日4670

……。

ライセンス的なことに関して。私は数式的というかビジネス書式的にパブリック・ドメインにしたつもり。

JRF2013年6月19日4162

no_ad_url.user.js も Copy_Title_and_URL.js も、前者は操作としては xpath で指定してバッテンにするかクリックするかという簡単な機能しかなく、後者は、一部取り除いてコピーするだけの機能でしかない。数式がパブリックドメインなら、これぐらいのプログラムもパブリックドメインであるべきだというのが私の主張。

その書式を決めたところに独創的なアイデアを認めてくれならうれしいが、ビジネスモデル特許が取れるほどのものではないというのが私の認識。このあたり、先行者がいらっしゃるなら、私はそこと争う気はないけど…。

JRF2013年6月19日4772

ただ、一点、例で挙げた example_nau.html で FLMASK を JavaScript で実装したところは、問題含みになるかもしれない。FLMASK 事件は日本のネット表現規制の端緒と言ってよく、今回はそういったことへの批判を込めてあえて FLMASK でモザイク処理を実装した。

が、Winny 事件もそうだったけど、日本の社会ではそういう事件性があったものについて、むしろそれを「漂白」するためにか、ビジネスに逆につなげようとする動きが出てきたりする。だから、ビジネス的なライセンスとしては日本ではここが一番、危ないかもしれない。

JRF2013年6月19日1584

まぁ、example_nau.html を実行していただければおわかりのようにかなり重たいシロモノなので、これをそのまま広く実用で使うというのはないだろう。やるとしたら CSS の mask や mask-image あたりを使うのが速度的にみあうところだろう。本当は、CSS でモザイク処理、FLMASK もその方式の一つとして扱えるように、個人的には、なって欲しいんだけど。

JRF2013年6月19日5912

《FLMASK - Wikipedia》
http://ja.wikipedia.org/wiki/FLMASK

《Winny - Wikipedia》
http://ja.wikipedia.org/wiki/Winny

JRF2013年6月19日5664

typo 「アイデアを認めてくれなら」→「アイデアを認めてくれるなら」。

JRF2013年6月19日6408

……。

no_ad_url.user.js を更新。バージョン 0.50。上のリンクの中身を差し換えた。

固定リンクは↓。

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20130620.user.js (バージョン 0.50)

JRF2013年6月20日9102

URL に含まれる mature=~ のオプションで、~で指定した日付以降は処理を行わないようにした。

いちおう、linker よりも一般性は薄いということもあり、迷った末に mature=~ だけでなく他と共存しやすいよう no_ad_mature=~ でも同じように処理できるようにした。

JRF2013年6月20日5964

そもそもこの機能を「コンセプトのみ」の最低限必要な部分の実装でしかない no_ad_url.user.js に私が入れる必要があるかというところでも、迷ったのだが、最も簡単な手形や小切手でも、日付は必要だからということもあり、入れておいた。

あと小切手・手形にあるものといえば何といっても額面だが…、額面みたいなものは、コンテンツへのリンクがそれに相当すればいい、その特殊な例として額面をほぼ意味することもあってもいいだろう…ということで、多分この先も私は入れないと思う。

JRF2013年6月20日1618

日付のフォーマットは javascript の new Date で解釈していて、Firefox 21 の Greasemonkey では ISO 8601 形式で OK なので、それを使えばいいのではなかろうか。

《ISO 8601 - Wikipedia》
http://ja.wikipedia.org/wiki/ISO_8601

JRF2013年6月20日7336

例としては、↓の一つ目は、昨日6月19日を指定するのでバッテンがなく、二つ目は西暦3000年の日付を指定するので、バッテンが付くはず。

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&no_ad_mature=2013-06-19T12:34:56Z

JRF2013年6月20日7366

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&no_ad_mature=3000-06-19T12:34:56Z

JRF2013年6月20日5135

no_ad_mature でなく mature でもおんなじ。

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&mature=2013-06-19T12:34:56Z

JRF2013年6月20日5755

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&mature=3000-06-19T12:34:56Z

JRF2013年6月20日8454

…正確には無効になるのは「日付以降」ではなく「日時よりあと」、このあたりの正確さは今の時代、ソース読んでもらったほうが早い。

JRF2013年6月20日8950

……。

example_nau.html は、いろいろ時事にからめた批判というかジョークな面があって、"nau" は流行語の「今でしょ」や写真が「神農」的なのにもかかっているといえなくもないし、他は↓のニュースとかがからんでくるか。自分の認識としてはシンクロニシティ的な感じも大きいんだけど、備忘的に記録しておく。

JRF2013年6月22日0018

《広がる米政府の「PRISM」問題 テクノロジー企業が相次ぎ「情報開示要請の総数」を公表》
http://jbpress.ismedia.jp/articles/-/38045

《米財務長官の“ぐるぐる署名” ちょっぴり判読可に 秋にもお目見え - MSN産経ニュース》
http://sankei.jp.msn.com/world/news/130619/amr13061912500010-n1.htm

JRF2013年6月22日9030

日本のネット界隈での有名どころへのリンクもしとこう…。

《高木浩光@自宅の日記 - 携帯電話販売店が本人同意を亡きものにする, 追記(21日)》
http://takagi-hiromitsu.jp/diary/20130620.html
>Appleはちゃんとこうして利用者を理解させて同意を得る仕組みを作り込んでいるのに、auショップの店員がそれを殺しているとなれば、販売業者が責任を負うということになるのではないか。 <

JRF2013年6月22日0615

……。

no_ad_url.user.js を更新。バージョン 0.51。上のリンクの中身を差し換えた。

固定リンクは↓。

http://jrf.cocolog-nifty.com/archive/javascript/no_ad_url-20140202.user.js (バージョン 0.51)

結構大きな更新なので、もうちょっとバージョンの数字を上げたほうが良かったかも?

JRF2014年2月2日5441

二つほど新機能がある。あと、中の関数の no_ad_xpath とかの引数の数が変わって前と互換性がなくなっていて、独自拡張とか万一やってたら注意が必要。

JRF2014年2月2日1121

新機能その1は、イメージとかを消したバッテンの上に No_Ad_URL という文字を表示し、消したのがこのスクリプトであることをわかりやすくした。mature や linker があれば、その情報を Canvas の title 属性に書いて(普通は)マウスオーバーするとツールチップとして表示されるようにした。

JRF2014年2月2日3221

新機能その2は、classify という「コマンド」を作り、no_ad=click:... みたいに no_ad=classify:クラス名:... とすると、"..." の XPath で指定された要素の class 属性に「クラス名」を足す。(クラス名が "-クラス名" のときはそのクラス名を削る。)

例は↓。ハリーのサブの三つの小さいイメージのうち最後のものに violence のクラス指定をしている。2014年1月下旬から violence のクラス指定があると、私のサイトではクリックを求めるようになっている。

JRF2014年2月2日6382

http://jrf.cocolog-nifty.com/column/2012/12/post-2.html?linker=Jion@jrf.cocolog-nifty.com&no_ad=img%3A/column/images/thumbnail-Others.jpg&no_ad_mature=3000-06-19T12:34:56Z&no_ad=classify:violence://img%5B@title=%22%E3%83%8F%E3%83%AA%E3%83%BC%203%22%5D

JRF2014年2月2日8278

« 前のひとこと | トップページ | 次のひとこと »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/57524374

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。

» cocolog:76862796 from JRF のひとこと

近況。6月に入って武道交流会の見学に行って、名古屋のおばのところに行って、前から痛かった歯を抜いてきた。「ニート」な私にしては最近動きまくり。 続きを読む

受信: 2013-06-29 22:28:56 (JST)

» cocolog:79036705 from JRF のひとこと

JavaScirpt 内でも password とかは参照できないようにするべきでは?File (Reader) API がなければ、ファイルの操作は JavaScript からは難しかったんで、それで代替できたかもしれないけど、すでに暗号化したのを入力させるのもなんかね…。... 続きを読む

受信: 2014-03-30 23:36:06 (JST)

» cocolog:78739712 from JRF のひとこと

JSActions を使って「テキストリンク」をタブで開くための Open_Text_Links.js をアップデート。 続きを読む

受信: 2014-03-30 23:37:34 (JST)

このころのニュース