selectで、訪問済を表現するには?
[上に]
[前に]
[次に]
ごず
2000/05/25(木) 23:12:30
左フレームのselectボックスで右フレームのページの
htmlを選ぶものを作っています。
結構、ページが多いので、
一度訪れたところの表示を変えたいのですが、良い方法はありませんか?
今のところ、私が思い付くのは、
onChangeイベントで、optionのvalueに"訪問済み"等の文字列をくっつける
方法か、
onChangeイベントで、
optionのスタイル(color)を変更するか、
と行ったところなのですが、ほかに、もっとシンプルで、
見た人がわかりやすいよう方法はありませんか?
アンカーでいうとvisitedの状態をうまくoptionで表現したいのですが..
出来れば、普通のアンカーのvisitedみたいに次に訪れたときも
表示が変わってくれるとうれしいのですが、
確か、optionのなかに<a>タグはだめですよね?
どなたか良いお知恵を貸してください。
よろしくお願いします。
ヨシダ
2000/05/26(金) 10:25:08
フレームを使っているなら、
> onChangeイベントで、
> optionのスタイル(color)を変更するか、
で、いけるんじゃないでしょうか?
style.colorや、style.backgroundとか色々試して、
分かりやすいと思えるものを選ばれては如何でしょうか?
(この方法はもちろんユーザの環境を選びますが)
> アンカーでいうとvisitedの状態をうまくoptionで表現したいのですが..
> 出来れば、普通のアンカーのvisitedみたいに次に訪れたときも
> 表示が変わってくれるとうれしいのですが
これは、cookieを使うしかないのでは?
でも、それだけのためだけにcookieを一々食わせるのもどうかと思いますが。
> と行ったところなのですが、ほかに、もっとシンプルで、
> 見た人がわかりやすいよう方法はありませんか?
select内の訪問済みの項目の色を変えても、その様な事は普通は起きないから
ユーザがそれを訪問済みの印と受け取るかどうか?とか思います。
上手くそれを表現出来ないのならば、
「訪問済を表現したい」という点から見た時、素直に普通のリンクにした方がいいような気もします。
ヨシダ
2000/05/26(金) 10:28:00
↑変な日本語ですね。。
shingo
[E-Mail]
[HomePage]
2000/05/26(金) 11:34:14
もし、私がそれを実現するとしたら・・・
・ページのどこかに、optionで飛ぶ先のアドレスのdisplay:noneな
テキストリンクをつくり、CSSで表示済みと未表示のcolorをそれぞれ
違う色に決めておく。(たとえば、optionにa.htmlとb.htmlに飛ぶ
よう設定しているなら、この二つのリンクをテキストで作る。)
・テキストリンクのオブジェクト.currentStyle.colorがどっちの
色かをみることで、表示済みかそうでないかがわかるので、スクリプト
でそれにあわせてoptionの色を変える。
これなら、リンク先で特別な事を何もしなくても表示済みかどうかを
判別できます。
ごず
2000/05/26(金) 19:43:04
みなさんお世話になります。
>shingoさんへ
ありがとうございます。
なるほど、そうすれば、Cookieを使うことなく訪問済みかどうか
わかるわけですね。
このスタイルの情報は、たとえば、
if(省略.currentStyle.color=="green"){
該当するoptionのスタイル変更処理;
}
のような記述で比較できるのですか?
それと、2重質問で申し訳ありませんが、
それこそ、リンクオブジェクトが、visitedかどうかという
プロパティーは、存在しないのでしょうか?
よろしくお願いします。
つまり、
if(オブジェクト.??.visited == true ){
処理;
}
といったようなプロパティーがあるとうれしいのですが..
mic
2000/05/26(金) 22:39:46
一番最初んとこ
>onChangeイベントで、optionのvalueに"訪問済み"等の文字列をくっつける
>方法か、
valueで出来るんだっけ?
自信無いけどinnerTextとかかな?
タイムリーじゃなくてわるいっす。
ども
shingo
[E-Mail]
[HomePage]
2000/05/26(金) 23:52:21
>このスタイルの情報は、たとえば、
>if(省略.currentStyle.color=="green"){
> 該当するoptionのスタイル変更処理;
>}
>のような記述で比較できるのですか?
そのとおりです。色が表示済みに設定されているものであるなら、
過去に表示済みと判断できます。
>それと、2重質問で申し訳ありませんが、
>それこそ、リンクオブジェクトが、visitedかどうかという
>プロパティーは、存在しないのでしょうか?
>よろしくお願いします。
これは、ユーザのプライバシーの一部と考えられます。そのため、
オブジェクトとしては存在しません。ですから、わざわざ対象と
同じアドレスのリンクを作り、その色を見ているのです。
ちなみに、この方法で、ビジターがあるサイトを訪れたかどうかを
知ることが出来てしまいます。あまり広まるとcurrentStyleで取得
できない対策が施される、なんてこともあるかもしれませんね。
ヨシダ
2000/05/27(土) 14:03:09
うぉっ!なるほど。 shingoさん、すごいっす。
「cookie使うしかないのでは?」なんて嘘書いてすみませんでした。
> valueで出来るんだっけ?
> 自信無いけどinnerTextとかかな?
<option>にidをつけて、
document.all(〜).innerText+='訪問済み';
NN6/Mozillaなら、
document.getElementById(〜).firstChild.appendData('訪問済み');
とかで出来るはず・・ と思います。
ごず
2000/05/29(月) 11:57:46
>これは、ユーザのプライバシーの一部と考えられます。
なるほど、いわれてみると...
>あまり広まるとcurrentStyleで取得
>できない対策が施される、なんてこともあるかもしれませんね。
これも、納得。うーむ....すごい。
ごず
2000/05/29(月) 12:04:26
[[解決]]
>micさん
ご指摘ありがとうございます。そのとおりでした。
>shingoさん
すばらしいご意見ありがとうございました。
>ヨシダさん
さっそく作ってみたところ、思い通りのものが出来ました。
それと、
>select内の訪問済みの項目の色を変えても、その様な事は普通は起きないから
>ユーザがそれを訪問済みの印と受け取るかどうか?とか思います。
>上手くそれを表現出来ないのならば、
>「訪問済を表現したい」という点から見た時、素直に普通のリンクにした方がいいような気もします。
これも、一考を要しますね。もう少し、妥当な表現を検討する必要がありますね。
(反省...)
大変参考になりました。
ありがとうございます。
[上に]
[前に]
[次に]