タグを認識するテキストボックスのようなものって作れますか?

[上に] [前に] [次に]
MMC 1999/04/01(木) 02:03:49
リンクの上にマウスカーソルがきたらテキストボックスにコメントを表示するというのをやってみたんですが、
これってタグ認識してくれないんですね(^^;
同じような仕様でタグも認識してくれるようなことってできないんでしょうか?

Tmb 1999/04/01(木) 10:20:00
小さなフレームを作っておいて,そこにdocument.writeで書き出すとか。

#それ以外はちょっと思いつかないです。

ポケ鬼!! 1999/04/01(木) 10:27:57
タグは無理ですが、MSIE4/5なら、スタイルシートによる装飾が可能です。

=================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML LANG="ja">
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<STYLE TYPE="text/css">
<!--
INPUT.HOGE {color: red; font-size: 5em;}
-->
</STYLE>
<TITLE>テストのページ</TITLE>
</HEAD>
<BODY>
<P><INPUT TYPE="TEXT" VALUE="あああ" NAME="ANEMONE" CLASS="HOGE"></P>
</BODY>
</HTML>

Tmb 1999/04/01(木) 11:48:30
いろいろと考えてみたけど,コメント欄を<LAYER>にしてみるなんてどうですかね。
#ただしNN4以上限定。IEならVBScriptか何かでソースのテキストそのものを書き換えるとか?
#使ってないからよく判らないけど。

http://www.tohoho-web.com/wwwdhtml.htm

yasu [E-Mail] [HomePage] 1999/04/01(木) 14:49:26
>いろいろと考えてみたけど,コメント欄を<LAYER>にしてみるなんてどうですかね。
>#ただしNN4以上限定。IEならVBScriptか何かでソースのテキストそのものを書き換えるとか?
>#使ってないからよく判らないけど。

IE4以上なら、innerHTMLでできます。

JavaScript:
document.all.msg.innerHTML = "<B>yasuやす。</B>";

HTML:
<SPAN ID="msg">ここに表示されます。</SPAN>

MMC 1999/04/03(土) 03:23:34
いろいろありがとうござます。やっぱ、単純にはできないんですね。

というわけで、<LAYER>を使っていろいろやってみました。
<FONT>や<BR>をちゃんと認識してくれるまでは良かったんですが、<A HREF〜></A>はダメなんですか?エラーが起きてしまいます。
まぁ、これはたいした問題じゃないからいいとして一番の問題は、「カーソルがリンク上にくると表示する」という処理だけだと
<LAYER>で表示した部分がどんどん重なっていって、下になった記事が二度と読めないんです(^^;
「カーソルがリンクから離れたら表示したものを消す」という処理にすればそれも回避できますが、
リンクからカーソルが離れても表示したままで、新しいリンクにカーソルがくると前に表示されていたものを消して
新しいコメントを表示する、ってことはできないんでしょうか?

>小さなフレームを作っておいて,そこにdocument.writeで書き出すとか。
フレーム使ったことないので、いかにも簡単そうな感じなのにまったく何をやればいいのかわからない(爆)
これってA,B二つのフレームがあるとしたらAにdocument.writeで記述したものをBのフレームに表示できるってことですか?
それなら、かなり使えそうなんですが・・・・。

それでは失礼します。

Tmb 1999/04/03(土) 10:20:31
>というわけで、<LAYER>を使っていろいろやってみました。
具体的にはどんな使い方してますか?

document.layer.document.write(); では<A href= なんかも使えましたが・・・
もしかしてonMouseOver="..."の中に直接タグを書いてて(引数で渡す形)
ダブルクォート(")を書いたりしてませんか?(&quot;にする)

>フレーム使ったことないので・・・

実は私はこれまでlayer使ったことなかったので(笑)

ABフレームの場合なら,Aの中に document.parent.B.document.write()
という形で書けばOKです・・・が,少なくともフレームの場合(多分
レイヤーの場合もそうなんだと思うけど)document.writeには何かクセ
があるので,使っていてあまり気持ちがよくないというか・・・。

#document.write()の後にはdocument.close()がないと最後の行が
#表示されないし。あと,表示がどうしてもうまくいかないときには
#writeする前に一度closeを指示してやるとうまくいったり。
#そのへんの理屈が僕もよく判らないので,どなたかに教えて欲しい
#ところです。

たこすけ 1999/04/05(月) 14:04:35
> 新しいリンクにカーソルがくると前に表示されていたものを消して
> 新しいコメントを表示する、ってことはできないんでしょうか?
「コメント=レイヤー」ですよね。
新しいレイヤーを表示する前に、全てのコメントレイヤーをhideすれば
良いと思います。(実際に既に表示されているかに関らず)

コメントのレイヤー名が連番だと仮定したときのサンプルを書いておきます。
#参考になるかどうか・・・
#しかもソースぐちゃぐちゃだし・・・・

以下ソース--------------------------------
<SCRIPT><!--
function show_lay(name){
for(i=1; i<=document.layers.length; i++){
document.layers["comment"+i].visibility = "hide";
}
name.visibility = "show";
}
if(document.layers){
document.write("<LAYER NAME=comment1 VISIBILITY=HIDE>コメント1</LAYER>\n")
document.write("<LAYER NAME=comment2 VISIBILITY=HIDE>コメント2</LAYER>\n")
document.write("<LAYER NAME=comment3 VISIBILITY=HIDE>コメント3</LAYER>\n")
document.write("<LAYER NAME=comment4 VISIBILITY=HIDE>コメント4</LAYER>\n")
document.write("<BR>\n")
document.write("<A HREF='#' onMouseOver='show_lay(comment1)'>リンク1</A><BR>\n")
document.write("<A HREF='#' onMouseOver='show_lay(comment2)'>リンク2</A><BR>\n")
document.write("<A HREF='#' onMouseOver='show_lay(comment3)'>リンク3</A><BR>\n")
document.write("<A HREF='#' onMouseOver='show_lay(comment4)'>リンク4</A><BR>\n")
}else{
document.write("NC4でみてね\n")
}
//--></SCRIPT>
<NOSCRIPT>JavaScriptを有効にしてね</NOSCRIPT>
------------------------------------------

レイヤータグをdocument.write()で書いているのは
非対応ブラウザの為なので、あまり気にしないで下さいね。

MMC 1999/04/08(木) 07:19:23
[[解決]]
いろいろアドバイスありがとうございました。
無事目的達成です(^^)

それにしてもdoucument.writeって一行でダーーっと書くしかダメなんですよね。
表示には関係ないですが、ソースのレイアウトが美しくない・・・・・
複数行にわたって書くときは、上のようにdoucument.writeを毎回書くしかないのかな。
どうにもなりませんかね〜。

ホントお世話になりました。
ではでは。

たこすけ 1999/04/09(金) 12:29:24
> 複数行にわたって書くときは・・・毎回書くしかないのかな。
一行ごとにクォーテーションで区切って
「+」か「,」で結合すればOKです。

document.write(
"あああ<BR>"+
"いいい<BR>"+
"ううう<BR>"
);

こんな感じですね
「"(')」と「+(,)」の間は改行とスペースが
いくつあってもかまいません。

[上に] [前に] [次に]