![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
初めまして。
下記の条件で、HTMLをリロードせずにHTMLタグを出力する方法をご存知の方がいらっしゃれば、教えていただけないでしょうか。簡単に言うと、innerHTMLのようにHTMLをリロードせずに動的に出力する方法が知りたいのです。(innerHTMLはこちらの事情で使えません)
・IE6限定でよい
・JavaScript,CSS,DOMはOK
・DynamicHTMLはNG(innerHTML等)
・一度HTMLを読み込んだ後、動的にHTMLタグを出力する
・出力する文字列の中にタグがあり、これが有効になるようにしたい
(例:たとえば、動的にHTNLタグである<b>hogehoge</b>とかを出力して、ブラウザ上にはhogehogeという文字列が太文字で表示されるようにしたいのです)
※試してみたがだめだった方法
1.document.write()による出力
⇒これをするとページがリロードされてしまうので条件にあわず
2.getElementById('hoge')で、<div id='hoge'></div>のnodeValueに文字列を代入して出力
⇒これをしても、HTMLタグではなく文字列としてHTMLタグが出力される。
よろしくお願いします!
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Q1.画面表示変更のきっかけ(イベント)はなんでしょう?
onLoad
onChange
onMouseOver
onClick
Q2.<b>はfont-weight:bold;とし、innerTextでは?
【Case1】レイヤーのalpha値を変更
【Case2】CSSのVisibility{visible|hidden}
【Case3】document.all("hogeid").innerText
document.getElementById("hogeid" ).innerText
hogeid.innerText
【Case4】SSIの<!--#include -->
この回答への補足
条件が一つ足りていませんでした。innerHTMLというより、DynamicHTMLが使えないというのが、開発の制約になります。ですので、innerTextも同様に使えることができないのです。innerHTMLでは、できることは確認しているのですが。。。
回答ありがとうございます!
No.1
- 回答日時:
IE6限定ならinnerHTMLが簡単でいいかと思いますが、なぜだめなんでしょうか?
どのような目的で、そうした条件設定、システム製作の必要があるのでしょうか?
(単に興味が沸いただけでもありあますが、質問にいたった「背景」がわかれば書かれていない制約もわかるし代替案が出せるかもしれない。)
一応、以下はtextareaの内容を解析して要素、属性、テキストに分け、DOMインターフェースを使ってdivの中に追加するスクリプトのサンプルですが、タグの解析は思いっきり手抜き(構文ミスがあった場合はもちろん、正当な構文でも正確に解釈できないケースが多々あります。)なので使用する状況によっては実用レベルではないかもしれません。
<html>
<head>
<title>タグを追加</title>
<script type="text/javascript">
function hoge(){
var Source = document.getElementById('t1').value;
var Target = document.getElementById('d1');
while(Target.firstChild) Target.removeChild(Target.firstChild);
while(Source.match(/<([^>]+)>/)) {
var Tag = RegExp.$1;
Source = RegExp.rightContext;
var Text = RegExp.leftContext;
addTextNode(Target,Text);
if(Tag.substr(0,1) == '/') {
Target = Target.parentNode;
} else {
var Attrs = Tag.split(/\s/)
newNode = document.createElement(Attrs[0]);
for(var i=1;i<Attrs.length;i++){
AttrSet = Attrs[i].split(/=/);
AttrSet[1] = AttrSet[1].replace(/\"/g,'');
newNode.setAttribute(AttrSet[0],AttrSet[1]);
}
Target.appendChild(newNode);
if(! Attrs[0].match(/^(img|br|hr|input)$/i)) Target = newNode;
}
}
addTextNode(Target,Source);
}
function addTextNode(Target,Text){
if(Text != '')
Target.appendChild(document.createTextNode(Text));
}
</script>
</head>
<body>
<p>
<textarea id="t1" cols="80" rows="5"></textarea>
<input type="button" value="タグ追加" onclick="hoge()">
</p>
<div id="d1" style="border:thin solid #f00"></div>
<p><input type="button" value="DIVのinnerHTMLを確認"
onclick="alert(document.getElementById('d1').innerHTML)">
</body>
</html>
innerHTMLがだめというのは、作ろうとしているものの制約になっているからです。厳密にいうと、DynamicHTMLを使わずに実現したいと思っています。ですのでinnerHTMLがだめというのは、技術的制約ではないが、作り物としての制約になります。
上記の回答ありがとうございました。早速、試してみたいと思います!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
ページによって表示位置がずれ...
-
リロードせずにHTMLタグ出力(i...
-
ハイパーリンクに下線を表示す...
-
別ページのページ内リンクでの...
-
<a href="#" …>の意味を教えて...
-
getElementsByNameで要素が取得...
-
iframeの中から親ページをスム...
-
新しいウィンドゥを最大化で立...
-
ホームディレクトリを示すチル...
-
インラインフレームをドラッグ...
-
日替わりメッセージの表示
-
フレームが入れ子状態です。フ...
-
Webサイトを表示時にタイトルの...
-
オブジェクトを指定してくださ...
-
javascriptのalertで文字化けが...
-
onkeydownの連続?
-
SQLのWHEREで全てを質問する方法
-
ウィンドウ名の設定
-
親タブから子タブ開いて親タブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bodyにidをつける理由は何ですか?
-
テキストボックス内にハイパー...
-
(Javascript)印刷するファイル...
-
ハイパーリンクに下線を表示す...
-
bodyにwidth:100%をつける理由は?
-
WEB上で編集できない、スク...
-
ワンクリックで二箇所に表示さ...
-
スクロールバーのスクロール量...
-
横スクロールを右から左へ・・・
-
テキストをクリックすると答え...
-
bodyタグの範囲について
-
ページの読み込みが完了してか...
-
「overflow: hidden」ペー ジ内...
-
"mailtoでメールの【氏名】【性...
-
外部ページからハッシュタグ(...
-
DOCTYPE宣言をするとstyleが適...
-
mailtoで質問・・・
-
IE以外は色が付かない なぜ?
-
javaScript Nullまたはオブジェ...
-
divで作成したテキストボックス...
おすすめ情報