« 2008年4月 | トップページ | 2008年9月 »

2008年5月の19件の投稿

2008/05/29

ツールを作る側は対象に与える影響をどこまで気にするか?

広く一般に供するような道具を作る側というのは、その道具が対象としているものに与える影響とかを影響を与える対象について、どの程度考慮して作るべきなんでしょう?
使い手に、ではなくて、使用した結果影響を与える対象について、という意味で。
例えば、道具=自動車、対象=環境(負荷)の関係です。
とりあえず、自分でも提供している身近なものということで、Web上のマッシュアップ系のサイトやツールについて。
ここでは、マッシュアップ=Web上の情報・サービス等を組合せて作る、くらいの意味で。
考えもまとまっているわけではないので、思いつくままつらつらと。
  1. サイト主の演出意図に対する影響
    CSSやJavaScriptやFlash等を駆使して見栄えをよくしたり、画像や写真・文章などを順番に意味を持たせて配置したり、『続きを読む』機能で期待を持たせたり、ちゃんと自分のサイトに来てほしいのでRSSはタイトルのみや概略配信にしたり、広告をクリックしてほしいのでページを分割して表示機会を増やしたり、サイドバーに注意書きを掲示したり、引用先に気遣ってわざとリンクにはせずにURLを書くだけに留めたり……といったさまざまなサイト主の意図は、各種ツール類によって達成されないことに。
    自作のに限れば、『Yin and Yang』『ぴくとぽっぷ』『URL→ハイパーリンク変換』なんかはそれ系だし、そもそもブラウザ標準の機能で意図通り表示されないとか、関連機能をオフにしたりとかすることも出来ますしね。
  2. サービス提供元に対する影響
    例えばココログフリーの広告のようなもの。
    あれは規約上、消したりすることは禁止されていますが、意図的に消すようなスクリプトを誰かが作って「ご利用は自己責任で」と配信した場合、悪いのはあくまで使った人、という扱いになるのでしょうかね?
    ましてや、閲覧者のブラウザ設定やユーザスクリプトによって消されるのなんて、コントロールしようもないでしょうしねぇ。
    テレビやレコーダといったものはほとんど利用しない人なのでよくわかりませんが、CMカット機能付きのものなんかは、問題無いものなのでしょうか。
    あとは、掲示板といったシステムに対して、見栄えや使い勝手を変えたサイトを独自に提供したり、巡回ツールを作ったりといったものですね(特に、元ページ上は表示されている広告や各種関連サイトへのリンクを削ったりするようなもの)。
    自作ので言えば、『みんなで解決!広場』フレーム版かな(あ、ちなみにこれは、ニフティさんにはメールにて了承を得ています)。
  3. サービス利用者に対する影響
    特に不特定多数が利用する"場"を対象としたツール/サイトですね。
    例えば、見た目を変えたことにより、受ける印象まで変えてしまう、といったこととか。
    はてブを某掲示板風や某SNS風に表示したりといった類。自作だと、『はてブニコす』もかなぁ。
    あと、自作のものでいうと、【ココログ】はてなブックマークコメントを個別ページにさり気なく表示するスクリプトについては、facetさんより
    得られる反応が普通のコメント欄と一緒になっちゃって、つまらない
    という意見を頂きました
    で、その後、『はてブコメントに対し、はてなハイクでリプライするGreasemonkey/SeaHorse』を使ってしばらくやり取りを行っていたんですが、これはなんとも場違いというか、我ながら空気読んでない感ばりばりでしたね。
    ハイクを選んだのは、はてなIDさえ持っていればだれでも書込めて、しかもURLの指定が容易だったから、なんですけどね。それに提供元が『気軽に何でも書き込めるミニブログです。』と宣言している以上、別にこういうのがあってもいい……と開き直るにはユキチが足りない。
そういったことを漠然と考えながらも、結局は『ご利用は自己責任で』と注意書きすることでお茶を濁してしまっているわけですが。

2008/05/24

"『無断リンクはやめて』という人にはしない方向で"の思考過程

『無断リンクはやめて』という人にはしない方向での記事を書いたときの思考過程は極めて利己的なもの。
  1. 世の中には無断でリンクされることを嫌がる類の人がある割合で存在する。
  2. 1. のような人は大抵、いくら『「無断リンク禁止」はおかしい』と理詰めで説得されようと、納得はしてくれない。
  3. まぁ『やめて』と主張する権利はあるだろうし、その是非はともかく、『やめて』と主張しているのだから、そこを無理やりリンクするのも気が引ける。
  4. また、そういう人のサイトに無断でリンクしたことが原因で、不毛な論争に巻き込まれるのも面倒。
  5. かといっていちいち『無断リンクを禁止しているかどうか』なんて確認するのも面倒。
  6. なら、ひと目見て、『あ、リンクされるの嫌なのか』とサイト主の要望がわかる仕組みがあった方が合理的。
  7. 6. のような仕組みがあれば、自分なら、該当するサイトにはリンクも張らなければ言及もしない。
なので本文中では意図的に、『無断リンクはやめて』という人の意図や目的には触れないようにしています(だって、理解出来ないんですから)。
品格ある行動とはほど遠いな(苦笑)。
慇懃無礼に「いやならスルーするから、わかるように主張掲げといてね」って書いているんだから。

2008/05/23

【ココログ】『続きを読む』をクリックしても、記事の途中に飛ばない場合の対策

通常、ココログで『続きを読む』をクリックすると、記事のアドレス(URL)の最後に "#more" が付き、続きの部分がすぐ読めるように頭出しされます。
ところが、リッチテンプレート(と使用するブラウザ)によっては、これがうまく移動出来ない(記事の先頭や、中途半端な位置に移動してしまう)ことがあるようです。
「続きを読む」の機能の事で・・・ (スレッド) | 質問一覧 | ココログサポートトップ
1004.「続きを読む」の機能の事で・・・ - 【みんなで解決!広場】ココログ徹底活用(上級者向け)
当該サイトについて、Windows XP SP2上で試したところ、
IE7NG(ページ先頭のまま)
Firefox 2.0.0.14NG(記事の先頭へ移動)
Opera 9.27OK
Safari 3.1.1OK
という結果でした。
■対策
<style type="text/css">
#more {
display:block;
clear:both;
width:1px;
height:1px;
}
</style>
のようなコードを、HTMLが記述出来るマイリストかサブタイトル欄に貼り付けておきます。
本当はSTYLE要素をHEAD内以外に書くのはよくないのでしょうけれど、カスタムCSSが使用出来ない場合はやむを得ないかなと。
または、以下のフォームから設置可能です。

作者名
提供元
パーツ名
パーツID
設置用HTML
■原因らしきもの
現象の発生するリッチテンプレートの CSS において、 .entry に設定されている overflow: hidden と、div.entry-body に設定されている float: left !important 辺りが原因(しかも IE7 と Firefox でそれぞれ微妙に影響する設定と現象が異なっている)らしいです。
どうも、id="more"の付いた A 要素が"隠れて"しまったり(IE7)、entry-body部分と"重なって"しまったり(Firefox)している模様。
それらの設定を上書きしてもよいのですが、デザインが崩れる副作用が懸念されるので、影響を最小限に留めるために #more に対して細工しています。
IEとFirefoxの両方に対応させるため、冗長な設定になってます。

2008/05/22

『無断リンクはやめて』という人にはしない方向で

『無断リンク禁止』とか『ソーシャルブックマークしないで』とかいうサイトをみかけると、えてして「いやなら公開しなければいいのでは?」とかいう反論で盛り上がったりするのがネットのお約束のようなのですが……少なくとも「されたくない」という意志を明示する権利と、その意志が見て取れたなら尊重する程度の柔軟性はあってもいいのでは?と思う次第。
「無断リンク禁止とかいうくらいなら、公開しなければよい」という意見は、「写真を撮られるのがいやなら、顔を出して出歩かなければいい」とか「(画像や文章、ソースコード等のリソースに対して)ネット上で公開しているんだから、無断で使用していいんだよね」という考え方とあまり変わらないような気がするのですけれど、後者のような意見をおおっぴらにいう人が比較的少数なのは、『肖像権』や『著作権』という比較的メジャーな概念(とそれについての法令による規制)があるからなのですかね。
前者に関しても、同じような概念があってもよいと思うのですが。
といっても、別に法令化しろということではなく。『お願い』と、それを見た人の『良識』に期待する程度の関係でいいんじゃないかなと思いますけどね。
あくまで『強制』ではなく『お願い』レベル。法令で義務化するようなことでもないでしょうし、法令化されないと守れないというような人は、ちと品格がない……というか、たとえ法令化されていたって無視する人は無視するんですよね。
結局、そういった『お願い』をきいてもらえなかったとしても「そういう人もいる」くらいの感覚でいるのが、精神衛生上いいかもしれないです。
で、インフラ側にも、ユーザがそういった意志を容易に表明でき、また訪問者にも知覚しやすい仕組みがあればよいのかなと。
サイトのトップページからリンクしたところに注意書きがあって『初めて来た人は一度ご覧ください』とか書かれていても……見ないことも多いのでは?別に悪気がなくても。
ブログのトラックバックやコメントはユーザの意志で受付可不可を選択出来るものが大半だし、検索エンジンによる情報収集に対しても、robots.txt や rel="nofollow" なんかである程度意志を表明することはできるわけで。
だったら同様に、簡単な設定で、無断リンクやブクマについて『ご遠慮ください』というのを、訪れた人にわかりやすく示す手段が用意されていてもよいと思います。
例えば、特定の属性のついたタグが埋めこまれている Web ページについては、ブラウザやソーシャルブックマークサービスの提供サイドで注意を促す、とかね。
女性の品格 (PHP新書)
坂東 眞理子 
女性の品格 (PHP新書)
発行:PHP研究所 
定価:¥ 756
ISBN:4569657052
発行日:2006-09-16
の『ゴールデンルール』の項では、
自分がしてほしくないことは人にもしないというのは品格のある生き方の基本です。
のように書かれていますが、まして、『人がしてほしくないと明言していることはその人にはしない』というのは、品格以前の当たり前のこと、といったところではないでしょうか。
そして、人の好みはさまざまなので、自分が嫌だと思うことは他人もそうとは限りません。ですので、嫌なことは嫌だと表明しておく、というのも、その人にとっての当然の権利でありましょう。
だからといって、なんでもかんでも「嫌」「禁止」といって権利を振り回したり、逆に表明がないからといって好き勝手してよいのだなと解釈したり、というのは、とても品格があるとはいえない行為でしょうけれど(笑)。
というわけで、極論はなるべく避けてくださいますよう、お願いしておきます(笑)。

2008/05/21

ちょっと小細工:textareaの高さを自動調節

改行入力なしでオートラップされた場合も自動調節してくれるとうれしいかな?と思ってちょっと小細工してみました。
■元ネタ
元記事:textareaのサイズを入力にあわせて調整するJavaScript (イラストdeブログ開発記)
経由:404 Blog Not Found:javascript - 勝手に添削 - textareaの高さを自動調節
■ソース
<script type="text/javascript">
function    initResizeTextarea(textarea) {
    if (!textarea||textarea._initResizeTextarea_) return;
    textarea._initResizeTextarea_=true;
    var offset=textarea.scrollHeight-textarea.offsetHeight;
    var lastLength=textarea.value.length, initRows=textarea.getAttribute('rows');
    if (isNaN(initRows)) initRows=3;
    if (!window.opera) {
        textarea.onkeyup=function(){
            var rows=textarea.getAttribute('rows');
            if (textarea.value.length<lastLength) {
                while (textarea.scrollHeight-textarea.offsetHeight<=offset) {
                    textarea.setAttribute('rows',--rows);
                    if (rows<=initRows) break;
                }
            }
            while (offset<textarea.scrollHeight-textarea.offsetHeight) {
                textarea.setAttribute('rows',++rows);
            }
            lastLength=textarea.value.length;
        };
    }
    else {
        textarea.onkeyup=function(){
            var lines=textarea.value.split('\n');
            var len=(initRows<lines.length)?lines.length:initRows;
            textarea.setAttribute('rows',len);
        };
    }
}   //  end of initResizeTextarea()
</script>

<textarea cols="64" rows="4" onfocus="initResizeTextarea(this)">
イチ


</textarea>
■サンプル
動作確認は、IE7(Sleipnir)、Firefox 2.0.0.14、Safari 3.1.1、Opera 9.27 で行いました。
ただし、Opera はscrollHeightの値が変化してくれないため、手動で入力した改行のみ対応で、オートラップには対応できていません。
どうも、Operaのtextareaは鬼門らしい(「内容に合わせて伸縮するテキストエリア」を Opera にも - m2より)

2008/05/14

Yin and Yang:動作改善(?)他

Yin and Yang:リンク先の内容をその場で表示するスクリプトについて、アンカー指定による移動を止める、マウスホイールでページをスクロールしている時などに引っかかりやすい(リンクの上をマウスカーソルが横切るとプレビューが開いてしまう)問題に対処するなど、いくつか修正を行いました(ver.0.02m)。
■Greasemonkey&SeaHorse兼用版
■SeaHorse専用版
ver.0.02hから主として以下のような改修を行っています。
  1. 【共通】アンカー指定で移動していたものをやめ、object.scrollIntoView(true)を使った移動に変更。
    これでアンカー指定のページ履歴が残ったり、IE系でプレビューする度にカチカチ音がする現象がなくなったはず。
  2. 【共通】スクロール時にマウスカーソルがリンクを横切るとひっかりが生じる(敏感に反応してプレビューが開いてしまう)問題の対策。
    一定時間(300ms)リンクの上にカーソルがないと、プレビューが開かないようにしてみました。プレビューが可能になったタイミングで、リンクの背景色がピンク色になります。
  3. 【共通】その他、表示上の微調整。
■余談
scrollIntoView()で移動する先の座標を、移動しないで知る方法はないものでしょうか……あるオブジェクトの位置を知りたいだけなのに、いったんそこまでスクロールしないといけなかったり、さもなくば、いちいち先祖まで遡ってブラウザ依存のオフセット計算をしないといけないなんて、不便極まりないですよねぇ……。

2008/05/12

overflow:hiddenが設定された要素の子孫要素を最前面に表示する方法…だれか教えて!

どなたかCSSに詳しい方、教えてください。
overflow:hiddenを指定した要素について、その特定の子要素(またはその子孫要素)[A]だけを、最前面に出す、というような設定を、[A]に対するCSS(style)指定のみで実現可能でしょうか?
具体的には、サンプルのような状態で、黄色部分(CHILD)にスタイル指定を追加するだけで、これを最前面に表示させたいのですが。
Yin and Yangでどうしても行き詰まってしまったので……まぁ、親を遡ってSTYLE指定すればなんとかなるといえばなるのですけれど。
こーゆー質問、ブログでしてどうする、という話もありますが(苦笑)。まぁ、解決出来なければ、質問掲示板に出没するかもしれません。

2008/05/11

URL→ハイパーリンク変換スクリプト(SeaHorse/Greasemonkey/ブックマークレット)

Webページ中、テキストで書かれた(リンクになっていない)URLをハイパーリンクに変換するスクリプトを作ってみました。
例えば、ココログの『みんなで解決!広場』等、本文中のURLがテキストになっているサイトで、自動的にリンクに変換されるため、URLをコピペする手間が減ります。
ありがちだし、今更感ばりばりですが。まぁ習作ということで。
いわゆるH抜きには先頭のh抜き(ttp://furyu.tea-nifty.com/のようなやつ)のみ一応対応していますが、全角とか日本語とかそういった複雑なものは未対応です。
■Greasemonkey&SeaHorse
SeaHorseの使い方については、例えばこちらとかこちら。Greasemonkeyの使い方については、例えばこちら
Operaのユーザー JavaScript ファイル(User Script)としても動作するようです(Opera 9.27で確認)。
■ブックマークレット
ブックマークレットの登録方法等はこちら→【Web】ブックマークレットのブラウザ毎の登録方法
■注意書き
  1. 例によって一切動作保証はありません。使用は自己責任で。
  2. うまく変換されないケースもありますし、ページによっては誤変換によりレイアウトが崩れる可能性もあります。
    なるべく影響を最小限に留めるように工夫はしたつもりですが。
  3. 変換されたリンクは、クリックすると別タブ(ウィンドウ)にて開きます。
    これが嫌な場合は、ソース中の
    var linkTarget='_blank';
    の'_blank'を'_self'に変更してください。
  4. 変換されたリンクにはtitle="*** converted ***"をつけています(マウスオーバすると表示されます)。
  5. 変換されたリンクから当該サイトへと飛んだ場合にも、当然ながら相手サーバにリファラ(REFERER)が通知されますのでご留意願います。
  6. はてなダイアリーだと、キーワードリンクが外れてしまいます。
    URLテキスト中にキーワードリンクが割込んだ場合の対策。まぁ、これだけ対処しても意味はあんまり無いですが。Google検索の強調表示とか、いろいろあるし。
    これが嫌な場合は、ソース中の
    var delKeywordLink=true; // for Hatena::Diary
    のtrueをfalseに変更してください。
  7. SleipnirでSeaHorseスクリプトとして使用する場合を除き、スクリプト(JavaScript)オフの環境では動作しません。
■【参考】URLテキストから当該サイトに飛ぶツール等
  • ちょこっと強制リンク
    Sleipnirの場合は標準スクリプトとして『ちょこっと強制リンク』というのがついており、これはSeaHorseとしても使用できます。
    同名のツールの移植版みたいですね。
    デフォルトだと"C:\Program Files\Fenrir & Co\Sleipnir\scripts\リンク処理"にある"ちょこっと強制リンク.js"を、"C:\Program Files\Fenrir & Co\Sleipnir\plugins\seahorse"下にコピーし、"ちょこっと強制リンク.user.js"にリネームすれば、SeaHourseとして動作します。
    詳細は『由々識の気まぐれ日記 Sleipnir 2.6.1 test2 リリース』を参照。
    ただ、SeaHorseとして自動実行させるようにしていると、ときどき誤変換をしてしまってページのレイアウトが崩れるようです。また、ちゃんと調べていませんが、innerHTMLを書換えている関係上、ページに設定されたJScriptなどが正常に動作しなくなる可能性もあるかも知れません。
  • Text Link
    Firefoxの場合、Text Linkという拡張機能が公開されていますので、これを使うのが便利だと思います。
    URLテキストをダブルクリックするだけで、当該サイトに飛んでいくので便利だし、タグを追加するわけではないので、ページレイアウトも崩れません。
    URL途中でタグが含まれているようなものもOKみたいですね。
  • TextLink風(2008/05/14追記)
    TextLink風は、958さんの作られた、Firefox版のText Linkと同様な機能を持つ、Sleipnir用SeaHorse+User Actionスクリプトです。
    とりあえずSeaHorse版を試してみましたが、URLテキスト(の一部)をダブルクリックするだけで、適切に解釈して目的サイトをタブで開いてくれるので快適です(このとき、URLとして解釈された文字列は選択状態のまま残っているため、コピペも容易)。
    JavaScriptオフでも動作してくれます。
    コメントにて、ぷにら♪さんに教えていただきました。

2008/05/07

ノイズキャンセル(マスク|マイク)ってないのかな?

電車の中で声高にケータイで会話している人を横目でみながら。
ノイズキャンセルヘッドホンの片耳分を凹凸を逆にして口につけたら、周囲に迷惑をかけないマイクが出来たりしないのかね?
自分の声が
  • 通話相手には聞こえやすく。
  • 周囲の無関係な人には聞こえにくく。
なったりすると、ちょっとうれしいかもしんない。
いや、もちろん周波数特性とか、デザインとかは工夫したうえで、だけど。
検索もかけないで書いているので、とっくに実現されてはいるものの、もろもろの事情で広まっていないだけ、という可能性も高いけどね……すぐ思いつきそうだし。

ルータが壊れた(泣)

『そういえば、最近機械系のトラブルはあんまりないなぁ…』とか思っていた矢先、ルータが壊れてしまいました(泣)。
少なくとも、土曜までは買い物する余裕は無いなぁ……時間的にも金銭的にも(哀)。

2008/05/06

Yahoo!Pipesで取得した日本語のページが化け化けに…?!

今朝方、このページのサイドバー(はてブコメント)を見て気がつきましたが、Yahoo!Pipesで日本語の入ったRSSやページを取得していると、軒並み文字化けが発生するようになっているみたいです。
Pipes作成画面でPropertiesを見てみると、日本語で入力してあったコメントも化けている……何かシステム変わったのかなぁ?
従って、Pipesを使用している拙作ツール類(はてブニコすはてブぽっぷココログコメントをRSSで取得ココログはてブコメント表示欄(サイドバー表示のみ)、Yin and Yang(共用版のみ))は全滅、という事態に(泣)。
一時的な現象ならいいけれど、恒常的になるといやだなぁ…。

2008/05/05

『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトの更新

特定ページについたはてなブックマークの情報って、はてな提供のAPIでJSON(P)で取得出来たんですね……1年半も前にリリースされているのに、つい先日まで知らなかったので、Google Ajax Feed API だの Yahoo!Pipes だので一生懸命取得していました(苦笑)。
はてなブックマークエントリー情報取得APIを参照。
同様に、ユーザのブックマークページの情報もJSONで取れたりするんでしょうか……?
そんなわけで、『はてブBOX』と、ココログ用『はてブコメント表示欄』スクリプトを、上記に対応する形でアップデートしました(『はてブBOX』はver.0.01i、『はてブコメント表示欄』はver.0.01d)。
ブックマークレットやココログに設置して使っている場合には自動で更新されますが、Greasemonkey/SeaHorseとして使用している場合は更新をお願いします。
■『はてブBOX』(Greasemonkey&SeaHorse) ■ココログ用『はてブコメント表示欄』(Greasemonkey/SeaHorse)
共に、表示面の細かいところを調整しています。
コメントにURLが有る場合には、リンクに変換するようになりました。
はてブBOXの方はタグも表示されるようになりました。
裏でこっそりバージョンアップしていたので、実際はver.0.01hから。
また今まで表示するアイコンが多すぎると下のほうが隠れてしまっていたのを、位置調整して表示するように改修しました。

Yin and Yang:高速化他

Yin and Yang:リンク先の内容をその場で表示するスクリプトで、プレビュー表示方法を見直して、高速化をはかりました(ver.0.02h)。
前の版と比べて、若干スムーズにプレビュー出来るようになったのではないかと思います。
まぁ、ページ取得にかかる時間はどうしようもありませんが。
それにしても、DOM要素についているattributeをまとめて高速に除去する方法ないかなぁ……。removeAttribute('*')とか出来れば楽なのに。
■Greasemonkey&SeaHorse兼用版
■SeaHorse専用版
ver.0.02fから主として以下のような改修を行っています。
  1. 【共通】プレビュー表示方法の見直しと高速化。
  2. 【共通】プレビュー上で[Shift]、[Ctrl]、[Alt]のいずれか+マウスホイール操作で、プレビューの最終/先頭に移動する機能追加。
  3. 【共通】ドメイン違いのサイトにCookieを送信しないように修正。
  4. 【SeaHorse専用版】プレビューするページによっては固まることがあったものを修正。
    これもOBJECT/EMBEDがらみ。ActiveXObject('htmlfile')で作成したdocumentでは、左記要素を含むものをappendChild()しようとしても固まる場合が有る模様。

2008/05/03

Yin and Yang:不具合修正他

Yin and Yang:リンク先の内容をその場で表示するスクリプトで、ページによってはSleipnirが固まってしまう不具合があったものを修正しました(ver.0.02f)。旧版を使用されている方は差替え願います。
■Greasemonkey&SeaHorse兼用版
■SeaHorse専用版
ver.0.02cから主として以下のような改修を行っています。
  1. 【共通】ページがうまく取得出来なかった場合、iframe表示を試みるように修正。
  2. 【共通】スクリプト読込み時の初期化処理の簡略化による体感速度向上。
  3. 【共通】プレビュー上の画像を非同期表示することによる体感速度向上。
  4. 【共通】ページ上にテーブル要素が有る場合にエラーになることがある不具合修正。
  5. 【SeaHorse専用版】ページ取得に時間がかかりすぎている場合(30秒以上)は取得を中止するように修正(この場合はiframe表示となる)。
  6. 【SeaHorse専用版】特定ページをプレビューしようとすると固まる不具合修正。
    ActiveXObject('htmlfile')で作成したdocumentにおいて、NOSCRIPT要素内にOBJECT/EMBED要素が含まれるようなとき、このNOSCRIPT要素をremoveChild()しようとしたら、Sleipnirが固まることが有るようです。

Googleの検索結果からH2タグが消える現象の原因

Google検索結果画面のHTML構造、変わりました?で書いていた、Googleの検索結果から<h2 class=r>タグが消える、という謎の現象ですが、原因らしきものがわかりました。
どうやら、Googleが読み書きしているらしいCookie(PREF)の値に"GBV=1"というのが含まれているとこのようになるみたいです。
例えば、JavaScriptオフにしたままで、
[A] http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8
にアクセスすると、
[B] http://images.google.com/images?hl=ja&safe=off&q=%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8&gbv=1&ei=62QbSPX8MJPS6gO67cSMCg
のように、パラメータに"gbv=1"がついたページへとリダイレクトされますが、このときにCookieに"GBV=1"というのが追加されてしまいます。
これで、通常の検索を行うと、検索結果からH2タグが無くなってしまいます。
この状態だと、例えばLDRizeで[v][o]が効かなくなったりする弊害が出てしまいます。
元に戻すには、JavaScriptをオンにした状態で、[A]にアクセスします。
で、以前記事にした、AutoPagerize/AutoPagerlike:Google イメージ検索への対応を試みるでは、わざと"gbv=1"付きのページを読込んでいるので……これを使っていると、勝手に上記現象が発生してしまうことになります。
とりあえず、対策した設定ファイル(!!autopageroptions.user.js)に差替えておいてください。
設定ファイルをカスタマイズしていて上書きしたくない場合、DOCFILTERのところに、
    ,   'http://images\\.google\\..+/images\\?.+':[function(doc,url){   //  Google イメージ検索用
            var dummy=new Image();
            dummy.src='http://images.google.com/images?gbv=2&hl=ja&safe=off&q=%E3%83%9A%E3%83%BC%E3%82%B8?update='+(new Date()).getTime();  //  for delete cookie(PREF= .. GBV=1 ..)
        }]
を追加します。
これは、継ぎ足しページを"gbv=1"で読込んだ後、"gbv=2"がついたURIにダミーでアクセスすることで、Cookieを書換させています。
oAutoPagerizeのGoogleイメージ検索対応 oAutoPagerize ver 0.4.1の方は対策されてるんだろうか……?

Yin and Yang:LDRize for SeaHorseに対応

Yin and Yang:リンク先の内容をその場で表示するスクリプトをアップデートして、LDRize for SeaHorseなどからプレビューのOpen/Closeを制御出来るようにしてみました(共にver.0.02c~)。その他、細かいバグフィックス等を行っています。
■Greasemonkey&SeaHorse兼用版
■SeaHorse専用版
今回の新機能は『リンク(<A>)要素にsyySwitch()という関数を追加する』というものです。
この関数をコールすると、当該リンク先のプレビューが開いたり閉じたりします(トグル動作)。
例えば、LDRize for SeaHorseに対応させるには、LDRizeをインストールしたフォルダ(デフォルトだとC:\Program Files\Fenrir & Co\Sleipnir\plugins\seahorse\LDRize)下のkeybindex.jsに、以下のようなコードを追加します。
/* ver.0.02p1~用 */
KEYBIND['y'] = function() {
    var LDRize=window.LDRize,YinAndYang=window.showYinAndYang;
    if (!LDRize||!YinAndYang) return;
    var paragraph=LDRize.getCurrentParagraph();
    if (!paragraph||!paragraph.getElementsByTagName) return;
    var links=paragraph.getElementsByTagName('a');
    if (links.length<=0) return;
    var url=LDRize.getParagraphLink(paragraph);
    if (url) {
        for (var ci=0,len=links.length; ci<len; ci++) {
            var tmplink=links[ci];
            if (tmplink.href!=url) continue;
            if (YinAndYang.syySwitch(tmplink)) return;
        }
    }
    var link=links[0];
    YinAndYang.syySwitch(link);
};
/* 以下は旧版(ver.0.02c~0.02n1)用 */
KEYBIND['y'] = function() {
    var LDRize=window.LDRize;
    if (!LDRize) return;
    var paragraph=LDRize.getCurrentParagraph();
    if (!paragraph||!paragraph.getElementsByTagName) return;
    var links=paragraph.getElementsByTagName('a');
    if (links.length<=0) return;
    var url=LDRize.getParagraphLink(paragraph);
    if (url) {
        for (var ci=0,len=links.length; ci<len; ci++) {
            var tmplink=links[ci];
            if (tmplink.href!=url) continue;
            if (!tmplink.syySwitch) continue;
            tmplink.syySwitch();
            return;
        }
    }
    var link=links[0];
    if (link.syySwitch) link.syySwitch();
};
これで、[y]キーによって、LDRizeで"→"がついているparagraphのプレビューを開閉出来るようになります。
なお、keybindex.jsは初期状態だと存在しないので、その場合は新規作成するか、もしくは、これ(keybindex.js)をダウンロードしてください。
【2008/05/03追記】うまく開閉出来ない場合があったので、ちょっと修正。

2008/05/02

Yin and Yang:リンク先の内容をその場で表示するスクリプトの更新

■主な変更点
  1. 【共通】LDRFullFeedのSITEINFOも使用するようにしました。
    os0xさんのブコメを元にしました。ありがとうございます。
  2. 【共通】読込んだページに含まれるスクリプトが実行されることがあったものを修正。
  3. 【SeaHorse専用版】text/html以外のページをプレビューしようとするとエラーになっていたものを修正。
  4. 【SeaHorse専用版】リンク先が画像ファイルの場合も対応。
  5. 【SeaHorse専用版】charsetによっては(cp943cなど)、文字コード変換時にエラーが発生することがあったものを修正。
SeaHorse(Sleipnir)専用版は結構いい感じに使えるようになった気がします。だれか他ブラウザ専用版作ってくれないかな(笑)。

Yin and Yang:リンク先の内容をその場で表示するスクリプト(SeaHorse専用版)

Yin and Yang:リンク先の内容をその場で表示するスクリプトのSleipnir(SeaHorse)専用版です。
■SeaHorse専用
Sleipnir使いの方はこちらをお薦めします。
共通版に比べて、Yahoo!Pipesを介さないので、速度が上がっています。
また、文字化けするケースや内容が取得出来ないケースも減っていると思います……多分。

Yin and Yang:リンク先の内容をその場で表示するスクリプト(Greasemonkey/SeaHorse/ブックマークレット)

検索結果やブログを読んでいてリンクがあった場合、それをクリックして別画面でリンク先を確認する、というのは結構面倒だったりします。
マウスオーバでサムネイル画像がプレビューされる、というようなスクリプトはよくありますが、意外とわずらわしいし、その割に実際にどんな内容があるかはよくわからないので、あんまり好きじゃないんですよね。
なので、その場でプレビュー表示してみるようなスクリプトを作成してみました。
■使用方法
スクリプトをインストール/実行後にウェブページを表示し、適当なリンクの上にマウスカーソルをあわせて、マウスホイールを手前に回すと、しばらくしてリンク先のプレビューが表示されます。
同様に、リンク上にカーソルをおいてホイールを反対に回せば、プレビューが閉じます。
■動作画面

Showyinandyangsample1_2

リンクの上にマウスカーソルをあわせ、ホイールを回すと……

Showyinandyangsample2_2

のように、プレビューが表示されます。
■Greasemonkey&SeaHorse
【2008/05/02追記】SeaHorseの方は専用版があります。Sleipnir使いの方はそちらをどうぞ。
■SeaHorse専用
SeaHorseの使い方については、例えばこちらとかこちら。Greasemonkeyの使い方については、例えばこちら
Operaのユーザー JavaScript ファイル(User Script)としても動作するようです(Opera 9.27で確認)。
■ブックマークレット
ブックマークレットの登録方法等はこちら→【Web】ブックマークレットのブラウザ毎の登録方法
■注意書き
  • 例によって、一切の保証はありません。ご使用は自己責任で。
  • リンク先のページによっては文字化けしたり、内容がまったく表示されないこともあります。悪しからず。
  • ■覚書
    ちなみになんでスクリプト名が『Yin and Yang』かというと、リンクの陰に隠れているページを陽にさらすという意味から、です。
    ほんとは引用→陰陽だというのはひみつ。

    « 2008年4月 | トップページ | 2008年9月 »

    戻るリンク追加

    カレンダー

    2025年5月
            1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31

    ココログカレンダーPlus(旧2)

    検索


      • Web全体 サイト内
      • 蔵書のISBNを入力して下さい
      • はじめる前
        初級者向け
        上級者向け
        ブログ紹介
        結果を表示

    コメントリストツリー化

    無料ブログはココログ