アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。innerHTMLで文章を書き換えたいと思っています。

■■■■■■■■■■■■
<div id='testid'>元の文章</div>

<SCRIPT Laguage="JavaScript"><!--
document.getElementById('testid').innerHTML
 = "この文章に書き換える";
--></SCRIPT>
■■■■■■■■■■■■
とするとうまく<div>内の文章が書き換わるのですが、

以下のようにjavascriptの記述を先に持ってくるとうまくいきません。
■■■■■■■■■■■■
<SCRIPT Laguage="JavaScript"><!--
document.getElementById('testid').innerHTML
 = "この文章に書き換える";
--></SCRIPT>

<div id='testid'>元の文章</div>
■■■■■■■■■■■■

検索して調べたところ、
「関数化させて id を指定したタグが表示されてから命令を実行させる」
必要があるとのことなのですが、書き方がわからずにいる次第です。

どなたかご教示いただければ幸いです。

A 回答 (2件)

>><SCRIPT Laguage="JavaScript"><!--


>>document.getElementById('testid').innerHTML
>> = "この文章に書き換える";
>>--></SCRIPT>
>>
>><div id='testid'>元の文章</div>

このままでは、<div>が生成される前に、JavaScriptが実行されるため、エラーになるのだと思います。


JavaScriptを関数化し、<body>のonloadで実行してやればよいと思います。

<SCRIPT Laguage="JavaScript"><!--
function htmlChange(){
document.getElementById('testid').innerHTML
 = "この文章に書き換える";
}
--></SCRIPT>
<body onload="htmlChange();">
<div id='testid'>元の文章</div>
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
上記の方法でできました!

ですので解決といたしますが、もし気が向いたらでまったく構わないのですが、
<body onload>を使わない方法があるようでしたらご教示いただけたらうれしいです。
というのも、私にbodyタグの編集権限がないからです。
(詳細は2番目の回答者様へのレスに書かせていただきます。)

実際にはブラウザがうまく判断してくれているのですが、
記述としては、

<body>
<SCRIPT Laguage="JavaScript"><!--
function htmlChange(){
document.getElementById('testid').innerHTML
 = "この文章に書き換える";
}
--></SCRIPT>
<body onload="htmlChange();">
<div id='testid'>元の文章</div>
</body>

と、bodyが重複している状況でして。

お礼日時:2010/11/11 18:48

どのタイミングで書き換えたいんか解らんが、



別に<body>の中に<script>があっても違反じゃないんで、
最初のまま
<div id='testid'>元の文章</div>
<script type="text/javascript">
document.getElementById('testid').innerHTML
 = "この文章に書き換える";
</script>

でもよいと思う。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ページを読み込む際に自動で書き換えてくれて、閲覧者は最初から書き換えられた文章を目にする形にしたかったです。

経緯としては、外部のサービスを使っている中で、あるHTMLファイルを編集する権限が部分的にしかないため、いじれない部分をinnerHTMLで書き換えたかったのでした。
具体的には、

■■■■■■■■■■■■
<html>

<head>
(私は編集できない)
</head>

<body>
<!--私が編集できる部分ここから-->
★ここにinnerHTMLと、差し替えるべき文章を入れたい
<!--私が編集できる部分ここまで-->

<!--私が編集できない部分ここから-->
<div id='testid'>元の文章</div>
<!--私が編集できない部分ここまで-->
</body>

</html>
■■■■■■■■■■■■
となっており、<div id='testid'>を先に持ってくることができないのでした。

尚、書き換える行為が規約に違反するとか、そういうことはありませんのでご安心を。

お礼日時:2010/11/11 18:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!