javascriptで<object>タグのリンクを変えたい

このQ&Aのポイント
  • javascriptを使用して<object>タグのリンクを変更する方法をご教授ください。
  • 以下のコードで<object>タグのリンクを変更しようとしていますが、上手くいきません。
  • どなたか、この問題の解決方法を教えていただけませんか?
回答を見る
  • ベストアンサー

javascriptで<object>タグのリンクを変えたいのですが

<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> どなたかご教授宜しくお願いします。

  • 00d
  • お礼率50% (5/10)

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.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);

00d
質問者

お礼

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

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> obj.getAttribute("data")=c.html; getAttributeは左辺で良かったかな? obj.innerHTML = 'c.html'; だとどうなります?

00d
質問者

補足

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が表示されるだけでした。

関連するQ&A

  • Operaでのobjectタブの高さ変更

    iframe代わりにobjectタブを使用しています。 読み込むページにあわせてjavascriptで高さを変更したいのですが FireFoxと違ってOperaではどうもうまくいきません。 どのようにすればよいのでしょうか。どなたか回答お願いします。 ちなみに現在のソース(必要部分のみ)は以下のような感じです。 <object onload="load()" id="content" type="text/html" data="~"></object> <script> function load(){ document.getElementById("content").height=document.getElementById("content").contentDocument.body.offsetHeight+"px"; } </script>

  • IEだけで動きません。Javascriptに関する質問です。

    IEだけで動きません。Javascriptに関する質問です。 初心者です。よろしくお願いします。 下記のページを作りました。 menuをクリックすると、ページが現れるようにしています。aaa.jsで制御しています。 ページの高さがそれぞれ違うので、bbb.jsで高さを取得しています。 IEでは、bbb.jsのwindow.parent.document.getElementById('obj')で「オブジェクトがありません」とエラーが出て、動きません。 他のブラウザでは動きました。 どうしてでしょう? 悩んでいます。 どなたか教えてください。よろしくお願いいたします。 <html>   <head> <link rel="stylesheet" type="text/css" href="main.css" media="screen,print" /> <script type="text/javascript" src="aaa.js"></script>   </head> <body>   <div id="container">   </div>       <div id="menu">    <ul>    <li><a href="javascript:changeObj('a.htm')" title="a">a</a></li>    <li><a href="javascript:changeObj('b.htm')" title="b">b</a></li>    <li><a href="javascript:changeObj('c.htm')" title="c">c</a></li>    </ul>   </div>     </body> </html> ***aaa.js*** /* オブジェクトの変更 */ function changeObj(html){ var contents = '<object id="obj" data="' + html + '" type="text/html"><\/object>'; window.document.getElementById('container').innerHTML = contents; } ***main.css*** /* obj */ #obj{ visibility:hidden; position:absolute; right:5%; min-width:560px; background-color:#CCFFFF; z-index:1; border-style:none; overflow:visible; } ***a.htm*** <html>  <head> <script type="text/javascript" src="bbb.js"></script>  </head>   <body> <div id="page-height"> <div id="a"><!--ここにページ内容--> </div> </div>   </body> </html>

  • JavaScript内からJavaScriptを書き出したいのですが

    こんにちは. JavaアプレットとJavaScriptを利用してJavaScriptを書き出すコードを書いてみたのですが,うまく動きません.具体的なコードは以下のようで,リンクはできるのですが,マウスを乗せるとオブジェクトを指定してくださいとエラーがでます.innerHTMLでJavaScriptを書き出すことはできないのでしょうか? <html> ・・・ <body> <SCRIPT language="JavaScript" type="text/javascript"> <!-- function dWrite(){ str='<script type="text/javascript">functionLinkMo(){varLM1;LM1=window.open"","Doc","toolbar=no,location=no,kdirectories=no,width=300,height=250");LM1.document.write"<html><head><title></title></head><body>testです/body></html>");LM1.document.close();}</script><body>rinku <ahref="#"onMouseOver="LinkMo()">ここにのせると</a></body></html>'; document.getElementById("here").innerHTML=str;} //--> </script> <applet ・・・dWriteを呼び出す></applet> <div id="here" style="position:absolute;width:600px; left:0px;top:0px;"> </div></body></html>

  • ウィンドウサイズの変更を滑らかに取得したい

    <html> <head> <script type="text/javascript"> function test(){ width = document.body.clientWidth; height = document.body.clientHeight; document.getElementById("haba").value=width; document.getElementById("takasa").value=height; } </script> </head> <body onload="window.setInterval('test()',1);"> 幅<input size="20" type="text" id="haba"/> 高さ<input size="20" type="text" id="takasa"/> </body> </html> -------------------------------------------------------------- 以上のような、ブラウザのウィンドウサイズを取得する コードを書いたのですが、滑らかに高さと幅が取得出来ずに困ってます。 イメージとしては、ウィンドウサイズをマウスで変更すると 高さと幅の数値がもっと滑らかに細かく変化するように したいのです。 どなたか回答お願いします。

  • JavaScriptで数値をimgに設定する

    JavaScriptで 下記のソースにてランダムで出した数値を htmlの width="" height=""に 設定するには どのようにすればよいのでしょうか? <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title></title> </head> <body> <script> var width = Math.floor(Math.random() * 400) + 1; var height = Math.floor(Math.random() * 400) + 1; </script> <img src="hoge.jpg" alt="" width="" height=""> </body> </html>

  • phpソースの中のjavascriptを実行する方法

    現在、AJAXの勉強をしているプログラミング初心者です。 環境はapache2,php5です。 phpのソースの中にjavascriptを埋め込んだものを動作させるには どうしたらよいのかが分かりません、 例えば以下の2つのファイルの場合。 abc.php↓ --------------------------------------------------------------- <html> <head></head> <body> <?php echo "こんにちわ"; ?> <script tyep="text/javascript"> alert("hello"); </script> </body> </html> --------------------------------------------------------------- abc.html↓ --------------------------------------------------------------- <html> <head> <script> try{ var obj= new ActiveXObject("Microsoft.XMLHTTP");} catch(e){var obj=new XMLHttpRequest();} function load(point){ obj.open("POST","abc.php",true); obj.send(null) obj.onreadystatechange=change; } function change(){ if(obj.readyState==4){ document.getElementById("target").innerHTML=obj.responseText; } } </script> </head> <body> <div id="target"></div> <a href="#" onclick="load();">click!</a> </body> </html> --------------------------------------------------------------- としたところ、 abc.phpを実行した場合はabc.phpのjavascriptが実行されてアラートがでるのですが、 abc.htmlからabc.phpにリクエストを出して出力された場合には、 javascriptが実行されずにアラートが出ない。 どうしてこのようになるのでしょうか? また解決策があれば教えてください。 よろしくお願いします。

  • javascriptで困っています。教えてください

    javascriptでimgタグの位置を変更しようと考えています。上、下の表示(divタグ)をクリックして上下に10pxずつ移動させたいのですが、どのようにしていいのかよく分かりません。 document.getElementById("kt").style.top = document.getElementById("kt").style.top-10; の部分に無理があるのでしょうか? 教えていただきたいと思い、投稿させていただきました。よろしくお願いします。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=480"> <style type="text/css"> <!-- #wrapper{ width:640px; height:480px; position:relative; } #kt{ width:250px; height:250px; position:absolute; top:100px; left:100px; } #up{position:absolute; z-index: 1;top:0px;width:20px;height:20px;background-color:#F00;} #down{position:absolute; z-index: 2;top:30px;width:20px;height:20px;background-color:#F00;} --> </style> </head> <body> <div id="wrapper"> <div id="up">上</div> <div id="down">下</div> <img id="kt" src="kt.png"> </div> <script type="text/javascript"> var up_element = document.getElementById("up"); up_element.addEventListener("click", touchUp, false); function touchUp() { document.getElementById("kt").style.top = document.getElementById("kt").style.top-10;     } var down_element = document.getElementById("down"); down_element.addEventListener("click", touchDown, false); function touchDown() { document.getElementById("kt").style.top = document.getElementById("kt").style.top+10; } </script> </body> </html>

  • CSS(スタイルシート)を切り替えるJavascriptについて

    CSS(スタイルシート)を切り替えるJavascriptについて 現在、表題のスクリプトサンプルに少し変更を加えたいと思い悩んでいます。 その内容ですが、サンプルでは切り替えるCSSの数だけボタンを配置する仕組みのようなのですが、当方では切り替えたいCSSが1種のため、ボタンもON/OFFのような単体にできればと思っています。 既存のラジオボタンやプルダウンメニューなどを使用した例はいくつか紹介されていましたが、できれば画像を用いたボタンで作りたいと考えています。 以下、サンプルからの抜粋となりますが、もしもご存知の方がいらっしゃいましたら回答いただけますと幸いです。 /* html */ <head> <link rel="stylesheet" type="text/css" href="/mode1.css" /> <link rel="alternate stylesheet" type="text/css" title="change" href="/mode2.css" /> </head> <body> <div class="mode"> <a href="javascript:selectMode('none')"><img alt="1" src="/mode1.gif" width="10" height="10" /></a> <a href="javascript:selectMode('change')"><img alt="2" src="/mode2.gif" width="10" height="10" /></a> </div> </body> ※ボタンに使用する画像は1種でも構いませんので、<a>タグをひとつにしてselectMode( )内の値をJavaの方で制御できないでしょうか? /* javascript */ function setMode(title) { var i, objs for(i=0; (objs=document.getElementsByTagName("link")[i]); i++) { if(objs.getAttribute("rel").indexOf("style") != -1 && objs.getAttribute("title")) { objs.disabled = true if(objs.getAttribute("title") == title) objs.disabled = false } } } function selectMode(styletitle){ if (document.getElementById){ setMode(styletitle) } } 言葉たらずの質問ですが、どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • JavaScriptの画像入れ替えについて

    下記のようなものでサムネイルをクリックすると大きな画面に表示される、みたいなものを作っています。しかし職場のIE6でクリックすると表示されなく大きな画像が消えてしまいます。 ちなみに自宅のIE6で確認したときは大丈夫だったのですが、、、 またサムネイル画像のアンカー部分のjavasscript:void(0);を消すと表示されるようになるのですが、やはりここのvoid0には問題があるのでしょうか?? またサーバーにUPする前オンライン上ではなくPCで確認している時はちゃんと表示できていたました。 あまり詳しくないものでどなたかよろしくお願い致します。 <script type="text/javascript"> <!-- function imgch(url) { document.getElementById("image").src=url; } //--> </script> <style type="text/css"> img { border:none; } </style> </head> <body> <img src="image/2.jpg" width="500" height="500" id="image" /> <a href="javascript:void(0);"><img src="image/2.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> <a href="javascript:void(0);"><img src="image/3.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> <a href="javascript:void(0);"><img src="image/3.jpg" width="50" height="50" onClick="imgch(this.src)" ></a> </body>

  • 【javascript】document.getElementByIdは一つしか使えないの?

    以下をhtmlをブラウザで見ると、文字列"aaa"は表示されますが、"bbb"は表示されません。 <html> <head> <SCRIPT LANGUAGE='JavaScript1.2'><!-- function init(){ document.getElementById("a").innerHTML="aaa"; document.getElementById("b").innerHTML="bbb"; } //--></script> </head> <body onload="init()"> <div id="a"></dev> <div id="b"></dev> </body> </html> ブラウザはIE,FFと試しましたが共に同じ結果でした。 FFのエラーコンソールには document.getElementById("b").innerHTML="bbb" is null のエラーメッセージが出てましたが、文法的に何が問題なのでしょうか?

専門家に質問してみよう