作者: ねこ丸
日時: 2009/2/15(15:05)
  ねこ丸です。

davi writes:

> でもでもお言葉ですが、「○Javascriptその2(でびの応用)」を
> POSTする以前に、
> 
> ---------------------------------------
> function SetWidthHeightSize(){
> objectTag.setAttribute('"width","' + document.getElementById("right_menu").clientWidth; + '"');
> objectTag.setAttribute('"height","' + document.documentElement.clientHeight; + '"');
> }
> ---------------------------------------
> 
> も試して、エラーが返ってくることは確認済みです。

  それは同じエラーだったでしょうか?


  というかそもそも setAttribute() で width, height なんて与えることはで
きないじゃんということを思い出しました。簡単に言うと、HTML に width,
height なんて属性はないからです。(一部のタグを除く。)

  言い直すと、

       getAttribute() できないものは setAttribute() できません。

  ごく自然な対応です。

  以下がテストコードです。  

<html>
  <head>
    <title>Test of setAttribute</title>
  </head>
  <style type="text/css">
#box {
  border: 1px solid;
  width:  300px;
  height: 300px;
}
  </style>
  <script type="text/javascript">
function get_size() {
  var e = document.getElementById( 'box' );
  alert( "width " + e.getAttribute( 'width' ) + "," +
         " : height " + e.getAttribute( 'height' ) );
}
function set_size() {
  var e = document.getElementById( 'box' );
  var s = e.style;
  s.width  = '200px';
  s.height = '200px';
}
  </script>
  <body>
    <h1>Test of setAttribute</h1>
    <div id="box"></div>
    <input type="button" value="get()" onclick="get_size()">
    <input type="button" value="set()" onclick="set_size()">
  </body>
</html>

  get の方では値が取れずに null が返ってきてしまうことを確認できます。
  set の方では stylesheet 経由で width, height を指定しています。これが
いちばん簡単な逃げ方かなと思います。

  ということでバッチリ DOM の問題だったようです。

--
    ねこ丸