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

このエントリーをはてなブックマークに追加
952Name_Not_Found:2005/12/13(火) 23:16:31 ID:???
ここまで読み飛ばした
953Name_Not_Found:2005/12/13(火) 23:54:25 ID:???
ま、これまでもテンプレに逆らってゴネる奴はいたが
消えていったな。せいぜい頑張りたまへ。5年くらい
頑張れば変わるかも知れないよ(スレ1が2000年に立ってる)。
954Name_Not_Found:2005/12/14(水) 00:17:57 ID:???
テンプレは変えなきゃならんな。

翻訳を除いて、個人サイトを全て削除。
情報が古いとか偏っているとか以前に、全然見ないから、意味が無い。

仕様に、ECMA357-1追加(必須)。
ヴェンダサイト developer.mozilla.org に書き換え。
955Name_Not_Found:2005/12/14(水) 00:57:36 ID:???
そうすると初心者は誘導じゃなくて排除の方向でテンプレ修正か?
まあ古いってばそうだが、
そこを消すと(いるかはっきり分からんがw)
それ見て自力で解決してたネラーでJavaScript初心者が
ここのルールも知らない>>944みたいな厨化する結果になっても知らないけど

まあどうせルール無視のネット初心者さんが増えるようなもんなんで
俺はどちらでも構わんが、そういう理解での提案?
956Name_Not_Found:2005/12/14(水) 01:03:31 ID:???
ここではライブラリとかは使わない方向なの?
別にスレがあんの?ないよね?
957Name_Not_Found:2005/12/14(水) 01:23:12 ID:???
なんのライブラリ?
958Name_Not_Found:2005/12/14(水) 01:46:28 ID:???
>>957
いや、そりゃJavaScriptの・・・。
Prototypeとかさ、ほかにもいっぱあるじゃん。
便利じゃね?
959Name_Not_Found:2005/12/14(水) 01:56:59 ID:irqQwFXr
初心者質問スマソ

SetInterval()でタイマーセットして
コールされる関数で

eval("document.image1.src='image"+i+".jpg'");
i++;

という漢字にして毎回違う画像を表示したいのですが
これが実際は一回しか読み込まれません

document.open()、close()ってものが鍵のような気がするのですが
わかりませんでしたすいません
どなたかかみくだいて教えてくれますまいか・
960Name_Not_Found:2005/12/14(水) 02:44:54 ID:???
var i = 0;
function func(){
var filename = "image" + i + ".jpg";
document.image1.src = filename;
i++;
}

window.onload = function(){
setInterval("func();",1000);
}

とか?
961Name_Not_Found:2005/12/14(水) 04:39:41 ID:???
秒数が1桁の時に00とか01とか表示したいんですが、どうすればいいんですか
var lmDateStr = new Date(document.lastModified);
var lmYear = lmDateStr.getFullYear();
var lmMonth = lmDateStr.getMonth() + 1;
var lmDate = lmDateStr.getDate();
var lmHH = lmDateStr.getHours();
var lmMM = lmDateStr.getMinutes();
var lmSS = lmDateStr.getSeconds();
var week = new Array("日","月","火","水","木","金","土");


document.write("最終更新日:"
+ lmYear + "年" + lmMonth + "月" + lmDate + "日("
+ week[lmDateStr.getDay()] +")"
+ lmHH + "時" + lmMM + "分" + lmSS + "秒<BR>");
962Name_Not_Found:2005/12/14(水) 04:52:08 ID:???
>>961
var lmSS = lmDateStr.getSeconds();
lmSS = (lmSS < 10)?"0"+lmSS:lmSS;
963Name_Not_Found:2005/12/14(水) 05:01:02 ID:???
>>962
すいません、こんな深夜にありがとうごさいましたおかげで助かりました
964Name_Not_Found:2005/12/14(水) 05:37:22 ID:???
>>963
ちなみにこんな便利なのあるよ
document.write(new Date().toLocaleString());

秒も2桁表示
965Name_Not_Found:2005/12/14(水) 07:16:39 ID:???
>>954-956
ECMA357-1は入れるけど、それ以外の個人サイト消去とか
ライブラリとかはこんな950超えてからじゃ議論できないので
保留して次スレで議論にしてよ。洩れ的にはライブラリには
あまり興味ないけど、扱った方がいいという人が多ければ
収録して紹介してもいいけど。ただ、ライブラリ使うだけの
客が増えるのもなあという気持ちもあるね…
966955:2005/12/14(水) 08:43:57 ID:???
ラジャー。スレ建て頼みます。
967959:2005/12/14(水) 09:10:43 ID:???
>>960さん

ありがとうございます。
でもやはり一度しか読み込まれませんでした
netscapeでは読み込み中状態が続き、
IEではステータスバーに「ページでエラーが発生しました」と表示されるようになります
968844:2005/12/14(水) 10:04:01 ID:???
>>967
どうせ name="image1"
忘れてるんだろ?

てか、エラー出たならエラーの詳細賭け
969Name_Not_Found:2005/12/14(水) 11:16:33 ID:???
>>967
エラーが出る最小限のソースを作って貼れ。エラーの場所と内容も
書け。それらができないくらい無能な奴は帰ってくれ。幼稚園じゃ
ないんだ。「XX番と同じです」なんてのは却下。何を間違えて変更
したか分かったもんじゃないからな。
970Name_Not_Found:2005/12/14(水) 11:20:01 ID:???
人にものを尋ねようとするときに自分の手間を惜しむ奴が
多すぎるよな。できることはひととおり尽くした上で人に頼るべきだよ。
971Name_Not_Found:2005/12/14(水) 12:59:39 ID:???
>>967
あら、動かなかった?すまそすまそ。酔ってたからw
ちゃんと書いてみる。

// ------ init ------
var rimg = new Array(); var rimg_src = new Array();
var rinterval = 1000 * 1; var rcount = 0; var rtimer;
// ------ 画像のパスを好きなだけ書く ------
rimg_src[rimg_src.length] = "foo/var/hogehoge.jpg";
rimg_src[rimg_src.length] = "etc/funnyaka/nurupo.jpg";
rimg_src[rimg_src.length] = "http://www.google.co.jp/intl/ja_jp/images/logo.gif";

つづく
972Name_Not_Found:2005/12/14(水) 13:00:01 ID:???
つづき

// ------ 本体 ------
function rotation(){
    if(!document.getElementById("rotate")){
        clearTimeout(rtimer); return;
    }
    var target = document.getElementById("rotate");
    if(rimg[rcount]){
        target.src = rimg[rcount].src;
        rcount = (rcount < rimg.length-1) ? rcount + 1 : 0;
    }
    rtimer = setTimeout("rotation();",rinterval);
}
// ------ 起動 ------
window.onload = function(){
    for(var i=0 ; i<rimg_src.length ; i++){
        rimg[i] = new Image(); rimg[i].src = rimg_src[i];
    }
    rotation();
}

つづく
973Name_Not_Found:2005/12/14(水) 13:00:42 ID:???
つづき

で、htmlに
<img src="foo/var/hogehoge.jpg" id="rotate">
を仕込む、と。今度は動くはず。

おしまい
974Name_Not_Found:2005/12/14(水) 13:21:10 ID:???
>>964
toLocaleString は、ローカル設定の影響を受けるから、
秒が2桁で返らない場合が無いとは言い切れない。
toUTCString や toGMTString なら、RFC1123形式で返ることが保証される。
時と分に関しては、時差の影響があるから、
var d=new Date();
d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
alert(d.toUTCString());// 末尾に " GMT" が付くが、日本時間。
のように setMinutes して、時差の影響を消す。
// 過去ログに何回か出ている。
// いわゆるまとめサイトがあるスレでは、過去ログチェックが強制される。
// このスレも例外ではない。>>961は、まず、過去ログ検索しろ。

// JSCript の toUTCString と toGMTString はバグっているが、
// それは日付けが1桁になることがあるというものであり、
// 秒については、必ず2桁で返る。
975Name_Not_Found:2005/12/14(水) 15:17:50 ID:???
976Name_Not_Found:2005/12/14(水) 15:27:14 ID:???
さ、テンプレの議論しよ。チュートリアルぽいサイトはやはり載せるべき
でしょ、何もないとなおさらとほほに行かれる。それは嫌。

ライブラリは…ライブラリの利用に熟達してもJSの達人にならないような
気がするので個人的には気が向かないけどね。
977Name_Not_Found:2005/12/15(木) 16:46:24 ID:???
JavaScript+Flashについて質問です。
アクセスしたユーザのリファラーを判別してFlashに変数を渡したいのですが受け渡しができていません。
どこが間違っているか、どなたかご教授ください、お願い致します。
はじめはブラウザはIE5.5〜で動作できればいいです。
他にもいい方法がありましたらアドバイスお願いします。

[JavaScript]
check = "http://www.hoge.com/";
ref = top.document.referrer;
if (ref.indexOf(check) < 0){
window.document.hoge.SetVariable('_root.ref',0);
}else {
window.document.hoge.SetVariable('_root.ref',1);
}

[HTML]
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="100" height="100" id="hoge">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="hoge.swf" />
<embed src="hoge.swf" width="100" height="100" name="hoge" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
978Name_Not_Found:2005/12/15(木) 18:05:17 ID:???
>>977
悪いけど、残りはテンプレ議論で埋めるから、質問は新スレでしてもらえないだろうか。

>>976
ライブラリサイトへリンクすると、そのライブラリに関する質問が来てうざいかも
しれない。一方、ライブラリ作って公開する猛者の書いたコードについて議論できれば
おもしろいかもしれない。あ、議論はよそで、か。
979Name_Not_Found:2005/12/15(木) 21:49:43 ID:???
>>977
flash の方はいじれないわけ?
980977:2005/12/15(木) 23:16:09 ID:uwULeDHV
flashのほうは、特に通信関係は組まなくても
flash上の変数_root.refに0か1が受け渡されるはず名のですが。。
981Name_Not_Found:2005/12/15(木) 23:26:02 ID:???
>>980
いや
flash 内部で使うなら
ActionScript で参照すればいいだけじゃないかと思ってさ。
982Name_Not_Found:2005/12/16(金) 09:16:21 ID:???
>>978
それはスレの話題範囲が広くなって収拾がつかなくなるということ?
それともスレ消費が激しくなることへの懸念?

後者なら、一部の初心者排除厨が躍起になって自治しようとしているからなのか
以前よりそういう書きこみ頻度と粘着度は減ってるし、
(俺は減り過ぎだと思うが次スレでホレ氏に噛み付く始末)

次スレ>> 1>> 3-4で名前欄でそこそこ目立つ色で誘導できてるし、
違った話題も入れてみてもいい時期かも。
983Name_Not_Found:2005/12/16(金) 09:56:55 ID:T2EhfTQq
すいません。ちょっと質問です。
DOMで特定の要素を取得するとき、childNodesを使うメリットってなんですか。
getElementByIDでも同じことができそうなので、そのちがいがよく分かりません。
984Name_Not_Found:2005/12/16(金) 10:28:55 ID:???
>>983
例えば、ある ul の 2 番目の子要素(li) のテキストを変更したい時とか。

<ul id="list">
  <li>A</li>
  <li>B</li>
  <li>C</li>
</ul>
<!--
var ulElem = document.getElementById("list");
var changedItem = ulElem.childNodes.item(1);
changedItem.firstChild.data = "changed";
-->

li の数が動的に変化する場合、li 全部に id を(動的に)割り振るよりも
ul にだけ id を割り振って、ul から li を辿った方が後々の変更に強い。
985Name_Not_Found:2005/12/16(金) 11:01:49 ID:???
<script language="javascript">
<!--
x="1"-2;
document.write(+x+"<br>");

x="1"+2;
document.write(x);
-->
</script>

初心者用の本の最初のほうで、いきなりわからないので教えてください。
document.write(+x+"<br>"); の部分でxじゃなくて +x+と書く理由を教えてください。
それと、x="1"-2; は-1なのに x="1"+2;は12なのはなぜですか?
986Name_Not_Found:2005/12/16(金) 11:41:33 ID:???
>>985
> xじゃなくて +x+と書く理由
前の+はわからん、後ろの+は"<br>"との連結。
> x="1"-2; は-1なのに x="1"+2;は12なのはなぜ
JavaScriptでは変数型が明示されず、そして+演算子は文字列の連結にも使えるから。
-演算子は純粋に引き算だから"1"が数値と見なされて引き算の結果-1が返る。
わからなかったら次スレで聞いてくれ。

>>982
レス消費はそんなに問題ないと思う。今でも十分勢い低いし、ここ。話題の範囲が
広くなるのもいいことだと思う。
でも質問系スレでは「議論はよそで」がデフォでしょ。ちょっとくらい検討しあうのは
ありだと思うけど、議論が白熱してると、質問者は流れぶった切って質問しなきゃ
ならないから、よくないかもなあ、と。
あと、人の作ったライブラリのサポート的な質問に答えるのは疲れるし。

って感じなんだけど、どう?
987Name_Not_Found:2005/12/16(金) 12:00:14 ID:???
ライブラリの質問してもそのライブラリを熟知してるヤシで
ないと回答できないよな。そんなに熟知してるヤシ多いのかな。
質問しても回答されないのが多いと盛り下がるからね、、、
988983:2005/12/16(金) 14:43:11 ID:???
>>984さん
ありがとうございました。
989Name_Not_Found:2005/12/16(金) 15:06:07 ID:???
>>987
> そのライブラリを熟知してるヤシで
> ないと回答できないよな。そんなに熟知してるヤシ多いのかな

つか、一人もいないでしょ。その場で見て理解するしかない。いろんな人が
printfとかgetElementsByTagAndClassNameとか作ってて、俺が自分でよく使う
俺ライブラリにも入っているけど、作り方は千差万別だろうしね。

現状での「○○というサイトで配布されていたスクリプトを貼ってみましたが動きません。
教えてください。」ってタイプの質問と変わらない感じで。
990Name_Not_Found:2005/12/16(金) 15:17:37 ID:???
それも質問の仕方じゃない?

>「○○というサイトで配布されていたスクリプトを貼ってみましたが動きません。
は少なくとも、>>2の2違反だし。
そういう場合は、ライブラリと自分のコードをわかるように晒さないと話にならないが
991Name_Not_Found:2005/12/16(金) 15:22:18 ID:???
>>990
その>>2の2違反が、現状でもまだあるのに増えるのかなー、と。
と、懸念してみたんだけど、とりあえず次々スレでライブラリ掲載を
試してみてるのもいいような気がしてきた。
で、駄目だったらその次でやめればいいし。
992Name_Not_Found:2005/12/16(金) 15:58:19 ID:???
あと他の意見がなければそういう話にしておいて、
またvol44の最後ぐらいで
スレ建て人か誰かから話を出してもらえばいいでしょ。
993Name_Not_Found:2005/12/16(金) 16:11:16 ID:???
>>984
なんかとんでもないこと言ってるな。
コメントアウトもHTMLなのかJSなのか分からんし。
994Name_Not_Found:2005/12/16(金) 16:45:36 ID:???
>>983
ID知ってればgetElementByID
IDがなかったり、動的に作ってて名前保持が面倒な時はchildNodes
995Name_Not_Found:2005/12/16(金) 17:34:17 ID:???
で、おすすめのライブラリは早めに収集した方が。
Prototype.jsとかは洩れは興味ないんだけど有名なの?
996Name_Not_Found:2005/12/16(金) 18:02:00 ID:???
梅茶宇?
997Name_Not_Found:2005/12/16(金) 18:02:40 ID:???
梅茶江!
998Name_Not_Found:2005/12/16(金) 18:04:07 ID:???
999Name_Not_Found:2005/12/16(金) 18:09:31 ID:???
漏れが初の1000getするからお前ら書き込むな
1000Name_Not_Found:2005/12/16(金) 18:10:14 ID:???
。・゚・(ノД`)・゚・。初1000ゲット
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。