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

<object>タグで指定したリンクをjavascriptで変えたいのですが・・・。
以下のように記述しているのですが上手くいきません。

<html>
<head>
<script langage="javascript">
function a(){
obj=document.getElementById("Link");
obj.getAttribute("data")=c.html;
}
</script>
</head>
<body onLoad="a()">
<object data="d.html" id="Link" width="700" height="500"></object>
</body>
</html>

どなたかご教授宜しくお願いします。

A 回答 (2件)

ブラウザによって若干違うみたい。


FF3.5、Opera10ではそのままでちゃんと表示内容が変わるようです。
IEは新しくオブジェクトを定義し直さないと、読み込んでくれないみたい。
(dataの値はちゃんと置き換わっているようですが)

とりあえず、cloneを作って置き換えればなんとかなりそう…
 var obj = document.getElementById("Link");
 var cln = obj.cloneNode(true);
 cln.setAttribute("data","c.html");
 obj.parentNode.replaceChild(cln, obj);
    • good
    • 1
この回答へのお礼

fujillin様ご回答ありがとうございます。
cloneを作ったら正常に動きました!

お礼日時:2010/01/08 22:01

> obj.getAttribute("data")=c.html;


getAttributeは左辺で良かったかな?

obj.innerHTML = 'c.html';
だとどうなります?

この回答への補足

bin-chan様ご回答ありがとうございます。

> obj.getAttribute("data")=c.html;
すみません。
左辺がどうこう以前によく調べるとobj.getAttribute()は属性の参照をするものでした。
属性の設定をするにはobj.setAttribute()でやるらしいです。
なのでobj.getAttribute("data")=c.html;を
obj.setAttribute("data","c.html");
に直してやってみましたが結果は変わりませんでした。

>obj.innerHTML = 'c.html';
こちらも同様にd.htmlが表示されるだけでした。

補足日時:2009/12/30 12:10
    • good
    • 0

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