- PR -

JavaScript onloadでdocument.write・・・

1
投稿者投稿内容
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2006-07-26 20:10
<--
document.write = ("hogehoge");
//-->
</SCRIPT>
<body onload="func()">
・・・

↑のようなことをすると、ページが読み込まれたあとに、
hogehogeのみが出力される状態になってしまいます。
読み込まれたページに追加する形で、writeすることはできないのでしょうか??

どうぞよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-26 20:42
引用:

nishimanさんの書き込み (2006-07-26 20:10) より:

のようなことをすると、ページが読み込まれたあとに、
hogehogeのみが出力される状態になってしまいます。
読み込まれたページに追加する形で、writeすることはできないのでしょうか??


であれば、onload に記述するのはやめて、追加したい場所で function を実行してください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2006-07-26 23:12
自己レスですみません。
解決致しました。

innerHTMLを利用してできました。
(IE6,FireFox1.5で確認)

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-27 08:59
引用:

nishimanさんの書き込み (2006-07-26 23:12) より:

innerHTMLを利用してできました。
(IE6,FireFox1.5で確認)


静的な内容を HTML に追加したいのであれば、
別の js ファイルを使って、私が先に示した方法を取った方が良いですよ。

ページ内 (全 HTML) の内容から、どうこうしてであれば、innerHTML でも良いですが、
「createNode + insertBefore バターン」 の方が、検証がない分高速だと言われています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-07-27 10:15
一般的に、innerHTMLのほうが高速です。
DOMノードの生成と追加は、スクリプトでは遅いです。
ノードが2つ程度の場合は、DOM操作のほうが速いこともあるようですが。

ダミーのdivを生成して、そこに複雑なHTMLをinnerHTMLで指定、
本来のエリアにはdivのfirstChildをappendChildする、とかやるとさらに速いようです。
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2006-07-28 04:25
引用:

mioさんの書き込み (2006-07-27 10:15) より:
一般的に、innerHTMLのほうが高速です。
DOMノードの生成と追加は、スクリプトでは遅いです。
ノードが2つ程度の場合は、DOM操作のほうが速いこともあるようですが。

ダミーのdivを生成して、そこに複雑なHTMLをinnerHTMLで指定、
本来のエリアにはdivのfirstChildをappendChildする、とかやるとさらに速いようです。


参考になります。どうもありがとうございます!
1

スキルアップ/キャリアアップ(JOB@IT)