+ JavaScript の質問用スレッド vol.41 +

このエントリーをはてなブックマークに追加
746Name_Not_Found:2005/10/08(土) 01:37:10 ID:???
>>743
だから頭固いな、もっと柔軟に行こうぜ。
<meta />自体どうよってカンジだけど。
部分的に指定できる細やかさがいいんじゃんw
論争する気はないんで使えるものは使う気でいこうや、
747746:2005/10/08(土) 01:38:34 ID:???
上げちゃったwスマソ
748Name_Not_Found:2005/10/08(土) 04:12:41 ID:???
HTML のイベント属性に javascript: を書くことについて。
- 文法的には、ただのラベルである。
- そこそこ誰でも知っていて、なんとなく使ったり読んだりしている。
- WinIE が、javascript, jscript, vbscript, vbs, perlscript に反応する。
  (プラットフォームも含め、過不足あれば指摘してくれ。)
- しかし、きちんとした仕様説明が見当たらない (探せなかっただけかもしれないが)。

ラベル
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/12_Statements.html#LabelledStatement
  FOO: for ( .. ) for ( .. ) if ( .. ) continue FOO;
におけるラベル FOO と同じ。
ラベルの例をもう一つ。
  <p onclick="rubyscript:while (true)
    for (var i = 0; i < 10; i++)
    if (i == 6) break rubyscript;
    alert(i);">alert(6)</p>

どうやら、良く練られた拡張ではなく、姑息な特例だと言わざるを得ない。
749Name_Not_Found:2005/10/08(土) 04:25:03 ID:???
750Name_Not_Found:2005/10/08(土) 07:30:18 ID:???
>>746
もし >>748 のようなことを知ってれば普通使わないだろ。
それを書いてるってことは無知を宣伝してるようなもんだと
洩れは思っているけどね。
751Name_Not_Found:2005/10/08(土) 09:15:51 ID:y+hq8Su7
これはJavaScriptでなぜダメですか。
<script type="text/javascript">
newtext='Hello World';
document.getElementById("Objekt").src = newtext;
</script>
<span id="Objekt"></span>
752Name_Not_Found:2005/10/08(土) 10:57:38 ID:???
そのスクリプトが実行されている時点ではspan#Objektは存在しないから。
753751:2005/10/08(土) 11:21:19 ID:elmT8M2q
わかりました。では、これではJavaScriptでなぜダメなりますか。
<span id="Objekt"></span>
<script type="text/javascript">
newtext='Hello World';
document.getElementById("Objekt").src = newtext;
</script>
754Name_Not_Found:2005/10/08(土) 11:40:07 ID:???
>>753
srcじゃなくinnerHTMLな希ガス

どっからsrcて文字が出てきた?
755Name_Not_Found:2005/10/08(土) 13:01:56 ID:8mqDe2PB
質問です。
setTimeoutで関数Aを動かし、a秒後に動作が完結します。関数Aが終
わったときに、関数Bを起動させ(b秒後完了)、同じように関数C、
関数Dと・・・関数Kまで続けたいのですが、どのように考えてスクリ
プトを組めばよいでしょうか。
756Name_Not_Found:2005/10/08(土) 14:07:20 ID:???
関数の末尾に次の関数を入れる。
757Name_Not_Found:2005/10/08(土) 15:20:04 ID:ifcHysr8
ある任意の年月日から今日までのカウントで、入力欄を空欄にすると、
「38664」という数字がでるのですが、これってなんですか?
75853:2005/10/08(土) 17:34:56 ID:???
<script>
a=document;
a.write(君、今夜どうだね?一杯);
</script>

documentの方を変数に入れても↑だとできるのに

<script>
a=write;
document.a(君、今夜どうだね?一杯);
</script>

writeの方を変数に入れてもできないのは何故でしょうか。
759Name_Not_Found:2005/10/08(土) 17:42:29 ID:???
>>758
writeはメソッドだからじゃないの?
760Name_Not_Found:2005/10/08(土) 17:51:06 ID:???
あの膨大なJSのリファレンスをよく覚えられるねぇ
なにか必要性があるからこういう言語を覚えるのかなぁ
それともJSって汎用言語の派生なの?
761Name_Not_Found:2005/10/08(土) 18:00:25 ID:???
>>760
object.property.method();
この語順だけを覚えれば良い.
object ごとに property, method が定められているから,
そのあたりを必要に応じて reference で調べるだけのこと.
(なにもすべて覚える必要はない)
762Name_Not_Found:2005/10/08(土) 18:02:46 ID:???
>>758
a=document;
a.write('XXXXXXXXX');

が通ったって?ホント?なに使ってるの?
763Name_Not_Found:2005/10/08(土) 18:04:35 ID:???
>>758
おまいの考えでは

write="あ";

こうしたら document.write が使えなくなるだろう。
よく >>5-6 のサイトを見るこった
764Name_Not_Found:2005/10/08(土) 18:11:56 ID:???
>>760
「あの膨大な」って、あれでも不足だね。直した従兄弟があちこち、まだまだ、だ。
Cを知ってりゃ、軽いモンジャないの?しょせん部品だから。
765Name_Not_Found:2005/10/08(土) 18:21:42 ID:???
>>760
喪前の考えが甘すぎるんだ。言語を熟知せずにプログラムを
書くのは時間の無駄だ。喪前は人生を無駄にしてるわけさ。
だいたいがECMA-262なんて言語仕様書としちゃ薄いもんだぜ。
C++なんか恐ろしいよ。 >>761 それも大甘だと思うな。
>>762
喪前の方がおかしいだろ。普通それは通るよ。「a.method(...)」
が動作して「b=a」を実行したらbはaと同じオブジェクトなので
「b.method(...)」も動作するに決まってる。Moz1.7とIE6で確認。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body onload="init()">
<div><script type="text/javascript">
var a = document;
a.write('ホレ');
</script></div>
</body></html>
766Name_Not_Found:2005/10/08(土) 18:29:16 ID:???
>>765
たぶん, アンタと僕とでは取り組む姿勢が違うのだろう.
そういえば JavaScript を書くことも少なくなった.
767Name_Not_Found:2005/10/08(土) 18:31:19 ID:???
>>758 >>762
こういうことじゃないのか? これで通るでしょ。

var 君、今夜どうだね?一杯 = 'XXXXXXXXX';
document.a = document.write;
document.a(君、今夜どうだね?一杯);
768Name_Not_Found:2005/10/08(土) 18:36:48 ID:???
>>766
それはアンタの選択だが、勉強しないことを自慢されてもねえ。
「勉強してないからどっかから先は自分の知識はいい加減だ」
と自覚していればいいんじゃないだろうか。
76953:2005/10/08(土) 18:40:53 ID:???
>>762 >>766
いやいや、違う違う。ちょっと実験をかねて復習のためにしてみただけ。
こうすると、for文で簡略化できるスクリプトを製作していたから、できたらいいなあ位に実験してたわけなんだ。
>>767 後で試してみる。ありがとう。
770Name_Not_Found:2005/10/08(土) 18:44:46 ID:???
>>757
そのプログラムがそういう風にできてるとしか言えないな。
コードも見ずにそれ以上答えられる奴なんかいないよ。
771Name_Not_Found:2005/10/08(土) 18:58:20 ID:???
>>768
べつに勉強しないことを自慢してはいない.
ここでは DOM などを教えてもらった.
ひとまず, 感謝しておこう.

この thread はしばしば見ているけれど,
たまに参考になることを発見するだけ.
目的と必要に応じて調べてやるというやり方だって ある.
最近は共に感じることがないだけの話.

おしかりを受けるかもしれないけど,
JavaScript でできることには限りがあると思う.
772Name_Not_Found:2005/10/08(土) 19:11:21 ID:???
>>771
何いってんの?言語ごとに限界はあるに決まってるじゃん。
その中で工夫するのが楽しいんだよ。ま、とりあえず
面白い質問を楽しみに待とうじゃないか。
77353(最後):2005/10/08(土) 19:11:48 ID:???
766は、レス間違えの誤読。
>>763 見てなかった。そしてできない理由がやっとわかりました。ありがとう
774Name_Not_Found:2005/10/08(土) 19:27:04 ID:???
>>771
>JavaScript でできることには限りがあると思う.

って、あんたね、こんなこといってるようじゃ、今日からJavaScripts捨てた
方がいいね。いろはの「い」から思想的にまちがってるよ。
#この人って、例の句点の「。」を「.」で書く、いわく付きの人物だろ。
775Name_Not_Found:2005/10/08(土) 19:49:23 ID:???
久しぶりで首を突っ込むと妙に絡まれるような...
JavaScript そのものは強力な仕様だと思う.
問題は security 上からの制限.
これは必要な制限だといえるし妥当だろう.

server side で動く JavaScript も JavaScript OSAX (AppleScript 用)
などもあるようだけど,残念ながら一般的でない.
結局 web contents の動的な表現限定で使われる宿命にある.

最近では style.display の制御に使っているだけだなぁ.
個人的には...
776Name_Not_Found:2005/10/08(土) 19:52:27 ID:y3j6ZKYb
質問です。
men = new Array('Tom','Bill','Dave');
women = new Array('Tom','Bill','Dave');
とあったとします。まず、menの配列をもとに
for(i=0;i<men.length;i++){
document....innerHTML = men[i]+'<br />'}
のような感じで書き出したとき、イベントで
function Func(x){
var wo=x;
//snip
のようにして、x+men[i]と関連させ、innerHTMLの中身を
women[i]と動的に差しかえることはできませんか。
777776:2005/10/08(土) 19:56:39 ID:vuu+GA6L
× women = new Array('Tom','Bill','Dave');
○ women = new Array('Mary','Sam','Lisa');

すいません。
778Name_Not_Found:2005/10/08(土) 20:33:08 ID:???
>>776-777
何度読み返しても, 意味わかんね.
779776:2005/10/08(土) 21:07:02 ID:???
すいませんです。説明がよくないようなので、補足します。

イベントで動的にもう1つの配列を呼び出して要素を差しかえるときに、
配列名を合成できないか、ということなのです。つまり、
women = wo + men と合成することで、
women = new Array(....)の要素を呼び出したいのですが、できますか?
780Name_Not_Found:2005/10/08(土) 21:30:23 ID:???
>>779
あんたは日本語の勉強が済むまでここで質問するのは
無理だと思う。しかし洩れにはちょっと分かった。
いいかね、まず変数xに'' (空っぽの文字列)を入れて
おけ。そして「.... = window[x + 'men'][i] ... 」
のようにするんだ。で、xに'wo'を入れれば配列women
が参照されるようになる。にしても、そんなぐちゃぐちゃ
なコード書いて何のいいことも楽しいこともなさそうだが。
781Name_Not_Found:2005/10/08(土) 21:36:20 ID:???
>>779
やっぱり僕には判らない.

>1つの配列を呼び出して要素を差しかえる
どういう条件で呼び出すの ?

仮に...
men=['Tom','Bill','Dave'];
women =['Mary','Sam','Lisa'];
とした時に obj.innerHTML を 差し替えたいのなら,

function f(x,y){
if(x=='men'){obj.innerHTML=men[y]}
if(x=='wo'+'men'){obj.innerHTML=women[y]}
}

こんな感じで事足りるのでは ?
(お世辞にもスマートなやり方ではないけどね)
782Name_Not_Found:2005/10/08(土) 21:40:14 ID:???
>>779-780
そんなことをするくらいなら
arr = men;
として、ループ内ではarr[i]を参照し、変更したいときに
arr = women;
としては?
>>775
なぜだか教えてやろうか。アンタのもの言いは「オレは正しい
ことをやってるんだ」というおごり昂ぶりがプンプン感じられる。
そのわりに書いてある内容自体は突っ込みどころ満載なんだよ。
トシがいってて直らないのかも知れないが、もっと謙虚になったら?
783Name_Not_Found:2005/10/08(土) 21:54:52 ID:???
ヒント:null
784Name_Not_Found:2005/10/08(土) 21:57:58 ID:???
>>782
おごりたかぶりねぇ〜...
考えてもみなかった.
必要性に応じたものを考えて作るだけなのが僕のスタンス.
僕は おもしろい利用法を探しているだけで議論には興味ない.
785776:2005/10/08(土) 21:59:09 ID:???
>>780さん
ありがとうございます。なるほど、そっかあ。これ2年越しで考えてた
のですが、できませんでした。検証してませんが、あとでやってみます。
たぶん行くと思います。ほんと感謝です。なんと言われようとうれしい。

>>781さん
ありがとうございます。そのif(...)はやってませんでした。それもあります
ね。原理が知りたかったので、見てくれは二の次でいいんです。感謝です。

連休、家族は温泉に行ったけど、留守番でよかった。今日はいい日だなあ。
2人のお兄さん方に感謝です。ありがとうございました。
786Name_Not_Found:2005/10/08(土) 22:07:37 ID:???
>>784
やはり謙虚にはなれなかったようだな。自己正当化に終始。
議論に興味なくなったのはごく最近(実は今)じゃないの?
面白いこと探すだけなら読むんで十分でしょ。うるさいから書くな。
787Name_Not_Found:2005/10/08(土) 22:09:19 ID:???
なんか痛いスクリプト厨が暴れてますね。
プログラミングを離れたらリアルでは疎外される人種なんだろうな
788Name_Not_Found:2005/10/08(土) 23:45:42 ID:???
>>787
そういうのは負け惜しみにしか聞こえないからやめた方が
いいんじゃないか。読んでる方が恥ずかしくなるね。
まあ2ちゃんなんて恥ずかしいもんで普通とも言えるが。
789Name_Not_Found:2005/10/09(日) 00:17:12 ID:???
nullをスルーするのが大人なんだよ(*´・ω・)(・ω・`*)ネー
790Name_Not_Found:2005/10/09(日) 00:51:26 ID:???
カレーにする?
791Name_Not_Found:2005/10/09(日) 01:01:42 ID:???
ルスにスル
792Name_Not_Found:2005/10/09(日) 01:04:52 ID:???
実際こんな仕事をしていれば、俺レベルでもJavaScriptの質問をされる
俺がネットで検索して作ったようなすくろぷとでそんなに感心しないでくれ
むしろ俺はいろいろ教えて欲しいと思ってるぐらいなんだ
793Name_Not_Found:2005/10/09(日) 01:35:43 ID:???
だれ?
794Name_Not_Found:2005/10/09(日) 06:44:59 ID:???
>>793 なんか的確かつ間抜けなつっこみでわろた
795Name_Not_Found
ま、このスレでは、ほめ殺しと釣りには要注意だな。>>792のように勘違い
する奴が現れる。