flickr で CC じゃない写真を消す GM スクリプト
実際は消すんじゃなくて半透明にします。適用先は他の人の写真一覧のページ (/photo/username/)
以下スクリプトの説明
実は Set があるときとないときとで構造化の度合いみたいなのが違っててややこしい。具体的には Set がない人の一覧では div.StreamView 一個に対し、一つの写真と写真の情報が含まれる望ましい構造であるのに対し、Set がある人の一覧では、写真一覧が全部 div.StreamView 一個に含まれている。
ということで、Set がある場合とない場合にわけてる。きもいー。
Set がある場合、div.StreamView 以下の要素を一旦構造化する。
DocumentFragmentを作っておく。div.StreamView以下列挙してループh4がでてきたら div (class="__GM_Photo") という要素を作る- 他の要素だったら
div.__GM_PhotoにappendChild(一旦ノードは削除される) - また
h4がでてきたらDocumentFragmentに突っ込む - ループ終わったら残ってる
div.__GM_PhotoもDocumentFragmentに突っ込む div.StreamViewにDocumentFragmentをappendChild(戻す)
DocumentFragment は DOM における無名ノードみたいなもの。名前そのまんまだけど!!!
appenChild は既に同じドキュメントにあるノードを追加するとき、一旦そのノードを取り除く。すなわち移動したいときはいちいち削除する必要はない。逆にコピーしたいときは cloneNode する必要がある。
そいでもって、Set がない場合は div.StreamView のクラス名に __GM_Photo を追加するだけしとく。
あとは、Set のあるなしに関わらず、CC の画像を含んでいない div.__GM_Photo にアレしてコレした的な何か。
関連エントリー
- 俺的 XHTML 構造 だいたい決まった構造の HTML を書くようになってきたので、俺の場合を紹介してみる。body 以下を書く。 body (div#all) ...
- 結果ツリーフラグメントの誤解 2004年12月の指向性メモ で言及されてるのを読んでもう一度仕様書を読み直してみる。 Variables introduce an add...
- SVGフォントのグリフを個別のSVG画像に変換する [tech] JavaScript の必要ないソーシャルボタン | Fri, Apr 15. 2016 - 氾濫原 これを作るとき、最初のう...
- Material Design Lite のテキストフィールドと Vue.js の相性があんまりよくない Material Design Lite のテキストフィールドの input 要素を Vue.js で扱うとき、普通に v-model で ...
- vim に乗り換えるよ! Emacs の設定に嫌気がさしたので (ネガティブドリブン) 、vim に乗り換えるよ! ubuntu 6.06 LTS の vim は V...