• ベストアンサー

NN4.78で動きません・表示されません

こんにちは、二つ質問させて下さい。 色々探してみたのですが、原因がわかりません。 1)<INPUT TYPE="button" value="クリック" onClick="klicken('hyouzi')" tabindex=1 style="color:#000000;border:solid 1px #ffffff;background:#ffffff"> <input type="button" value="閉じる" onClick="window.close()" tabindex=1> この二つがNN4.78で表示されません。とほほさんで調べたらNN4でも動作するようなんですが・・・何が間違っているのでしょうか? 2)innerHTML内で改行をしたいのですが、できないでしょうか? どちらかでもご存知の方いらっしゃいましたら教えて下さい、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nuruhho44
  • ベストアンサー率57% (38/66)
回答No.4

#2です。 lead1976さんがお書きになっているように、NN6以上では、 onMouseOver="document.getElementById('d1').innerHTML='テストページ1の説明が表示されます'" という風に記述しないと動作しませんよ。 こうしておけば、NNだけでなくIEやOperaでも動作しますので、DOMの基本的な記述法として覚えておくと便利です。 この文を途中で改行するなら、 onMouseOver="document.getElementById('d1').innerHTML='テストページ1の説明が<BR>表示されます'" とすればいいです。 NN4xに関しては、興味がないのでわかりません。ごめんなさい。 WEBページで得られる情報は、必ずしも最新情報とは限りませんので、そのへんをチェックし踏まえた上でご利用になるのがいいと思います。

tsubura
質問者

お礼

2度目の回答ありがとうございます。 すいません、私の知識不足でした。 javascriptはまだまだ勉強し始めたばかりで、意味不明なことを返していたのなら本当にすみません。仰るとおりに記述しましたら、7.1でも動きました。 >WEBページで得られる情報は、必ずしも最新情報とは限りませんので、そのへんをチェックし踏まえた上でご利用になるのがいいと思います。 ご指摘ありがとうございます。よく本屋で探してはいるのですが、適当なものが見つからず、つい、オンライン上で検索をかけてしまいます。 検索をかけるときは心掛けるようにします。

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#199778
noname#199778
回答No.3

input要素等のフォーム部品については、NN4.xxではform要素内に入っていないと、狙い通りの表示・動作は確保できないようです。 form要素の中に入っていれば、フォーム部品として使われる要素も正常に解釈されるようになると思います。 そのフォーム部品を配置する部分を、全体的に一つのform要素で括ってしまえば良いのではないかと思います(<form><input></form>のように、input要素を個別に囲むのではなく)。 innerHTML内での改行は、HTMLの記述で強制改行させる場合と同じ記述をすればよいでしょう。 ですので、改行させたい位置に<br>を記述すればよいはずです。 ただ、NN4.xxを対象にJavaScriptからHTMLの内容の書き換えを行わせたいのであれば、NN4.xxはdocument.all[targetID].innerHTMLと言う記述には対応していませんので、別の方法を使う必要があります。 そちらの方法については、参考URLのスクリプトなどが参考になると思います。 document.layers[targetID].document.open(); document.layers[targetID].document.write(~); document.layers[targetID].document.close(); などと言う記述があるあたりが、NN4.xxでinnerHTML的な動作をさせる部分にあたるはずです。 なお、DOMと呼ばれるインターフェイスに対応している最近のブラウザでは、 docuemnt.getElementById(targetID).innerHTML="" と言うような記述で、 document.all[targetID].innerHTML="" と同じような動作が得られます。 こちらについても、参考URLのスクリプトで少し確認できると思います。 具体的なソースがないので、不具合の直接的な原因を指摘することはできませんが、参考になれば。

参考URL:
http://www.red.oit-net.jp/tatsuya/java/Fleft4.htm
tsubura
質問者

お礼

回答ありがとうございます。 こちらを参考にして、やってみたところ、その他の問題も解決しました。 ありがとうございます!

tsubura
質問者

補足

ご回答ありがとうございます。 おかげさまで、inputの窓閉じは表示されるようになりました。 もうひとつのほうはもう少し自分でがんばってみようと思います。(NN4.78では解釈されるようになりましたが、7.1で解釈されない) innerHTMLのほうは、<body>に直接 <a href="test1.html" onMouseOver="d1.innerHTML='テストページ1の説明が表示されます'" onMouseOut="d1.innerHTML=''">テストページ1へ</a> と記述してあります。(お役立ち小技集さんのほうからコピペしただけです) 先程NNで確認したら、大元のタグでも動きませんでした。 参考urlありがとうございます。参考にさせていただきます。

すると、全ての回答が全文表示されます。
  • nuruhho44
  • ベストアンサー率57% (38/66)
回答No.2

すみません。横レス失礼します。 >innerHTMLはIE専用?みたいですね。 NN6.0以上、Operaなども認識しますよ。DOMが使えるブラウザならOKだと思います。でもNN4xでは使えないでしょう。IE専用は innerText ですね。innerHTMLで代用できますから、あえて使う必要はないと思います。 innerHTML内には、当然HTML形式で書く必要があるので、改行は<br>でいいんじゃないでしょうか。というより、それしかないのでは? NN4は持っていないというか無視しているので、よくわかりませんが、スタイルシートはともかく普通のHTMLなら普通に表示できそうなので、 > <input~> > →説明 となるのは「→説明」を<FORM>~</FORM>の外に出しているのではないですか?

tsubura
質問者

お礼

続けて回答して下さってありがとうございます。なんとかまともに動くようになりました。 ありがとうございました!

tsubura
質問者

補足

ご回答ありがとうございます。 検索をかけたら、推奨?と説明されていたので、そう思ってました。専用と推奨では随分違いますね、失礼しました。 しかし、NN(4.78と7.1)でチェックしても動いてくれないんです。記述ミスがあるのかもしれません。 >innerHTML内には、当然HTML形式で書く必要があるので そうなんですが、another HTMLでチェックすると、どうしてもinnerHTML=''内に<>を入れると文法違いとしてはじき出されてしまうので、ほかに方法があるのかと思ったんです。 >となるのは「→説明」を<FORM>~</FORM>の外に出しているのではないですか? これは中に入れても外に入れても改行されてしまうみたいです。しかも何故かNN4.78では動いて7.1では動いてくれません。

すると、全ての回答が全文表示されます。
  • meke2
  • ベストアンサー率41% (16/39)
回答No.1

こんばんわ。 1) <INPUT>タグを<FORM>~</FORM>で囲っていますか? NN4はIEみたいに曖昧な(?)記述が出来ないので^^; 2) 解釈が間違っているかもしれませんが‥‥ 改行したい場所に<BR>を追加でいいと思います。

tsubura
質問者

補足

回答ありがとうございます。 1)そうでした。ものすごく初歩的なことだったんですね。ただ、これだと、隣にかいてある文字列 <input~>→説明 というレイアウトが <input~> →説明 と表示されてしまうのですが・・・tableを使うしかないでしょうか? 2)すいません、innerHTMLはIE専用?みたいですね。 <br>でいいんですが、これだと使い方が間違っているらしいんです。 なので、ほかにないかと探していたんですが・・・ 文字参照を使うと動作しなくなってしまって・・・

すると、全ての回答が全文表示されます。

関連するQ&A