オブジェクトの指定をIDで統一
FireFox対応版、解決編。
- <IMG NAME="char">と<DIV ID="maintext">で渡し方が違うので統一したい。
の解決編。
NAME属性の方で統一しようとしたんだけどうまくいかなかったんで、IDの方で統一しました。
<IMG>タグの方も、NAME属性ではなくID属性で名前を指定します。
それを、getData()メソッドに文字列として渡します。
index.html
<IMG ID="character" SRC="Ki.jpg" BORDER="0"><BR> <DIV ID="maintext"> </DIV><BR> <input type="button" value="「喜」へ切り替え" onClick="getData( 'dataKi.xml', 'character', 'maintext' ); return false;"> </form> <input type="button" value="「怒」へ切り替え" onClick="getData( 'dataDo.xml', 'character', 'maintext' ); return false;">
受け取ったメソッドではgetElementById()メソッドで名前から
オブジェクトを取得します。
test.js
// <image>の中身を取得します。 var imageUrl = page.getElementsByTagName( "image" )[0].childNodes[0].nodeValue; // イメージ置き換え先の取得。 var imageObj = document.getElementById( imageObjId ); // イメージを置き換えます。 imageObj.src = imageUrl; // <text>の中身を取得します。 var text = page.getElementsByTagName( "text" )[0].childNodes[0].nodeValue; // テキスト置き換え先の取得。 var textObj = document.getElementById( textObjId ); // テキストを置き換えます。 textObj.innerHTML = text;
これに対して値をセットします。
個人的には、逆にNAMEの方で統一したかったんだけど、<DIV>タグにNAME属性付けてそれで渡してもエラーになっちゃったんで……このあたりの完全な構文仕様書が欲しい……。