作者: davi
日時: 2009/2/15(09:59)
ねこ丸さん < こん??は でび@M$の月例BugFixのせいでまだ寝てない です

# 本質的にDOMそのものの話題でもなさそうなのでタイトル変えました。

On Sun, 15 Feb 2009 08:47:07 +0900 (JST)
wtnabe@... (ねこ丸) wrote:

>   せめてこの line 123 がどこに相当するのか教えてくれないとこちらは手出
> しできないです。

その行は objectTag.setAttribute(OTRMW); そのものに該当します。

必要最低限度を見極めて、切り出して示す、ってのはわかっている
人でないと難しいですね。

html宣言開始から末尾までコード全部載せるのは迷惑だろうし。
前回は、BLOGに貼り付けて皆さんへの迷惑を回避しようとしたんですが、
いつまでもその方式じゃなぁ…という気持ちもあります。

>   なんのこっちゃよー分からんと思いましたが、下を見たら一発。

>   setAttribute() の引数は一つじゃないです。name, value は別々な値が入り
> ます。一緒の文字列にしたらそら動きません。上のエラーも value がねーぞ、
> と怒られてるわけです。
> 
>   それが分かったところで読み返してみると
> 
> > setAttributeに放り込んだユーザ定義変数が、うまく展開されて
> > いないのか?という印象です。
> 
>   実はほとんど正解にたどりついています。問題は「仕様」をチェックしてい
> なかったこと。ちゃんと使い方は調べておきましょう。

むぅ。以下、再掲しますが、
---------------------------------------
○Javascriptその2(でびの応用)

function SetWidthHeightSize(){
    var RMW = document.getElementById("right_menu").clientWidth;
    var RMH = document.documentElement.clientHeight;
    var OTRMW = '"width","' + RMW + '"' ;
    objectTag.setAttribute(OTRMW);

    var OTRMH = '"height","' + RMH + '"' ;
    objectTag.setAttribute(OTRMH);

alert(RMW);
alert(RMH);
alert(OTRMW);
alert(OTRMH);
}
---------------------------------------
つまり、alert「OTRMW」や「OTRMH」で出てきた「"width","800"」
やら、「"height","600"」やら、というような文字列は、

> > setAttribute(name, value)
> >    このメソッドは void を返す。name パラメータは DOMString 型である。
> >    value パラメータは DOMString 型である。

の中では「"height","600"」がヒトカタマリとしてnameパラメータ
だと認識されている、ということでしょうか?

でもでもお言葉ですが、「○Javascriptその2(でびの応用)」を
POSTする以前に、

---------------------------------------
function SetWidthHeightSize(){
objectTag.setAttribute('"width","' + document.getElementById("right_menu").clientWidth; + '"');
objectTag.setAttribute('"height","' + document.documentElement.clientHeight; + '"');
}
---------------------------------------

も試して、エラーが返ってくることは確認済みです。

てことは、パラメータを「2つ」として与えるには、どうすれば?

あんまり眠いので、まだ試していませんが、あと、できそうな方法は

*何も入っていない所へ、「"height","600"」を「"height"」「,」
 「"600"」の3つの配列にして、順次追記で放り込む。

*既にダミーとして入っている「"height","600"」をsplitする。

*既にダミーとして入っている「"height","600"」を正規表現でreplaceする。

くらいしか思い浮かびません。さて、どうしたもんでしょ?

>   こういう情報は下手に入門用に「解説」してくれるものより仕様書の方が
> チェックしやすいです。仕様書で入門しようとするのは不幸ですが、

「こういう時はこんなのを探す」って見極め、ができるようになるのが
課題ですね。
「これを知りたいときにはこの辞書」ってのは、文学系や歴史系とか
ではある程度わかるんですが、プログラミング言語はあまりにも
スピードが速く、生きている学問なので、融通無碍さを手に入れるのは
至難の業に感じます。

特に、オブジェクト/メソッド/プロパティ/コレクションとか
言われると、ソシュールの言語学テキストを思い出して眠くなります。

「セロテープ」はシーニュか?シニフィエか?答えなさい、みたいな…。

-------------------

でもね、一昨年より目に見えて進歩したのを、1個だけ、
昨日・今日の作業で実感したんですよぉ。

それは、去年、ねこ丸さんたちにじっくり、繰り返し、
教えてもらったファンクションへの切り出し。

「あ、これでヒトカタマリの手続きになってる。
外に切り出して、呼び出しできるじゃん。」みたいな。

これの見極めが時分なりに、ちょっとできるようになった点。
これ、自分的にはすげー進歩なの。うれしー。
いやはや、ありがとうございます。

ただ、スクリプトのかなり前方にファンクション貼り付けて、
その中で使っているユーザ定義変数が、切り出し前のカタマリ
の中でvarしていて動かない、という失敗も、当然、やっちまって、
そこもそれで勉強になりましたけど。

でび  http://davi.txt-nifty.com/1984/