5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :Name_Not_Found:04/07/31 10:20 ID:???
━━━━━JavaScript質問スレ道場訓━━━━━
 一、礼節を重んじ常に努力精進すること
 一、ブラクラに打ち勝つ精神力を持つこと
 一、心身の優れたJavaScriptを学ぶこと
 一、雑草の如く生涯JavaScriptを貫くこと
 一、感謝と反省を忘れないこと
 以上
━━━━━━━━━━━━━━━━━━━━━━

このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・FAQ・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
 (質問時、回答時にはなるべく対象環境を明記しよう)

前スレ http://pc5.2ch.net/test/read.cgi/hp/1087889503/l50
FAQ・過去ログ・関連資料・その他質問スレは >>1-10

952 :Name_Not_Found:04/09/15 08:15:48 ID:???
次スレは975超えたら。FAQの項目追加/削除等あればご意見を。
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. HTMLとCSSがきちんと理解できてない人にはDOMでの操作は難しいですね。

953 :Name_Not_Found:04/09/15 11:06:28 ID:???
Q11. 無理だということですね…。
A11. 別に無理にとは言わない。

954 :Name_Not_Found:04/09/15 12:26:31 ID:???
>>953
それ意味がよく分からないな…

あと行数一杯なんで何か入れるなら何か削る必要があると思われ。

955 :Name_Not_Found:04/09/15 13:42:42 ID:???
Q11. 無理だということですね…。
A11. お前には一生無理。

956 :Name_Not_Found:04/09/15 15:35:54 ID:???
parseIntの使い方がよく分かりません。
document.write('<meta http-equiv="refresh" content="3;URL=');
document.write(parseInt(location.href.substr(location.href.length-7,3))+1+".htm");
document.write('">');
どうすれば飛べますか?宜しくお願いします。

957 :Name_Not_Found:04/09/15 15:43:55 ID:???
javaスクリプトに手を出したばかりなので、至らないところがあるかもしれませんが、質問させてください。
画像が並んでいて、各画像毎のマウスの位置が取得したいので、以下のようにしてみました
function getPos(e, obj) {
if (document.layers) {
offsetX = e.layerX;
offsetY = e.layerY;
} else if (document.all) {
offsetX = event.offsetX + 2;
offsetY = event.offsetY + 2;
alert(offsetX + " ; " + offsetY);
} else if (obj.getElementsByTagName) {
offsetX = e.pageX - parseInt(obj.style.left);
offsetY = e.pageY - parseInt(obj.style.top);
} else if (document.getElementById) {
offsetX = event.offsetX;
offsetY = event.offsetY;
}
}
mapタグから<onMouseMove="getPos(event,this)">として使用しています。
IEなどはいいのですが、safariでどうしても相対的な位置が取得できません(ブラウザの絶対ポジションになる)
safariでも動作をさせる方法はあるでしょうか。
よろしくお願いします。

958 :Name_Not_Found:04/09/15 15:45:18 ID:???
>>956
飛べてました。訂正します。

959 :Name_Not_Found:04/09/15 15:48:04 ID:???
>>956
parseInt は Int 型にするもの。
location.href.substr(location.href.length-7,3) が数値以外のものを
返していないか確認してください。
つか、そんな回りくどいことせなんでも、

function f(){
var url = parseInt(location.href.substr(location.href.length-7,3))+1+".htm";
window.location.href = url;
}
setTimeout("f();",3000);

ではいかんの?

960 :959:04/09/15 15:48:38 ID:???
だからあれほどリロードしろと… orz

961 :Name_Not_Found:04/09/15 16:04:24 ID:???
>>959
レスありがとうございます。お騒がせ致しました。
959の方がパラパラアニメには時間を調節できて良いですね。
ありがたく頂戴させて頂きます。>>956だとタイミング合わせられません。

962 :Name_Not_Found:04/09/15 18:06:44 ID:???
>>957
そんなぐっちゃぐっちゃにすること自体不要だろ。
IEはe.offsetX, e.offsetYだがこれは特殊で普通は
e.clientX - document.images[番号].offsetLeft,
e.clientY - document.images[番号].offsetTop
を使うんだと思った。その2種類以外のブラウザはN4とか
どのみち機能不足で駄目なものじゃないかな。

963 :Name_Not_Found:04/09/15 18:35:20 ID:???
ラジオボタンの1個目と2個目が動きません。間違いの指摘よろしくお願いします……
<SCRIPT type=text/JavaScript>
NAGURU="説明"
function A1(ATAI){
alert=(ATAI)
if(document.HOUHOU.HYOUJI[0].checked==true){
alert=(ATAI);
}
else if(document.HOUHOU.HYOUJI[1].checked==true){
}
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI);
}
function A2(ATAI){
if(document.HOUHOU.HYOUJI[2].checked==true)
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI)
}
</SCRIPT>
<BODY BGCOLOR=WHITE TEXT=BLACK>
<FORM NAME=HOUHOU>
<TABLE BORDER=1>
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、アラートで効果を表示。</TD></TR><!--ここと-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、下のテキストエリアに効果を表示。</TD></TR><!--ここが動きません-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●の上をマウスが通過した時、下のテキストエリアに効果を表示。</TD></TR>
</TABLE></FORM>
<TABLE BORDER=1 BGCOLOR=0000FF>
<TR><TD BGCOLOR=FFFFA0><A HREF="#1" onmouseover="A2(NAGURU)" onclick="A1(NAGURU)">ここ</A></TD></TR>
</TABLE>
</CENTER>
<FORM NAME=TEXTAREA_FORM><TEXTAREA NAME=TEXTAREA_NAKAMI COLS=100% ROWS=5></TEXTAREA></FORM>
</BODY>

964 :Name_Not_Found:04/09/15 18:50:15 ID:???
>>963
> alert=(ATAI)
これは?

965 :Name_Not_Found:04/09/16 07:56:28 ID:???
title=""の項目に 配列を入れたいのですが、今日の日付からどう番号を得たら良いのでしょうか?
src=の方は4桁の月日として得られています。 今日なら0916という値です。366の配列のの何番目という値を得たいのですが...
宜しくお願いします。

966 :956:04/09/16 08:19:04 ID:???
一応
var TergetDate = new Date("2004/1/1");
var num = Math.ceil((today.getTime() - TergetDate.getTime()) / (24*60*60*1000))-1;
で出来ましたが、間抜けなので良い方法をお教え頂けると幸いです。

967 :Name_Not_Found:04/09/16 08:35:12 ID:???
取り敢えず、targetかな。

968 :956:04/09/16 08:42:20 ID:???
間抜けです。スマソです。%366ぐらいしか思いつきません。
宜しくお願いします。

969 :Name_Not_Found:04/09/16 08:42:56 ID:???
>>965
ハア?「title=""の項目」って何さ。自分のプログラムの中だけの
話を唐突にされても。配列を入れるって、「""」は文字列だけど
どういう配列を入れるの?「src=の方」ってどっちの方さ。
読んだ人に分かるように質問しなければ回答もない、分かるだろ?
あんたが質問すべき文章は「"MMDD"という月2桁、日2桁の文字列
からその日がその年の何日目かを求めるにはどうしたらよいでしょう?」
だよな。

で、常に「今年の」でいいのなら次のように。
y = (new Date()).getYear(); m = parseInt(str.substring(0, 2));
d = parseInt(str.substring(2));
days = (new Date(y,m,d).getTime()-new Date(y,1,1).getTime())/(24*3600*1000);

970 :Name_Not_Found:04/09/16 08:47:33 ID:???
>>966
自分でうるう年や月ごとの日数の処理するよりDateオブジェクトに
頼む方が吉だと思うよ。自分もその方法を推奨する。しかし4桁の
文字列から月と日を求める方法が知りたかったわけ?
>>968
「%366」って何さ。もしかして来年以降も使えるようにするため
2004年決め打ちにしたら366の剰余を取るってことか。ほんとアンタ
口数は多いくせに日本語が分からなさすぎ〜。もっとモノを考えて
的確に質問してくれよ。

971 :957 :04/09/16 09:21:39 ID:???
>>962
レスが遅くなりすみません。
safariの事が書いてあるページがあまり無いようで苦戦していました。
試してみたいと思います。
ありがとうございました。

972 :956:04/09/16 09:51:09 ID:???
%366は冗談です。969さんのを参考にさせて頂きました。
でもparseIntを使うと頭に0があると
ゼロを返すのでパスしました。
やはり私の日本語可笑しいですね。そちらの方も勉強します。
即レスありがとうございました。多謝。

973 :965:04/09/16 12:38:09 ID:???
>>964
あー間違えました。本当はもっと長いソースを削るときにミスった……
<SCRIPT type=text/JavaScript>
ATAI="説明"
function A1(ATAI){
alert=(ATAI)
if(document.HOUHOU.HYOUJI[0].checked==true){
alert=(ATAI);
}
else if(document.HOUHOU.HYOUJI[1].checked==true){
}
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI);
}
function A2(ATAI){
if(document.HOUHOU.HYOUJI[2].checked==true)
document.TEXTAREA_FORM.TEXTAREA_NAKAMI.value=(ATAI)
}
</SCRIPT>
<BODY BGCOLOR=WHITE TEXT=BLACK>
<FORM NAME=HOUHOU>
<TABLE BORDER=1>
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、アラートで効果を表示。</TD></TR><!--ここと-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●をクリックした時、下のテキストエリアに効果を表示。</TD></TR><!--ここが動きません-->
<TR><TD><INPUT TYPE="RADIO" NAME="HYOUJI"></TD><TD NOWRAP>●の上をマウスが通過した時、下のテキストエリアに効果を表示。</TD></TR>
</TABLE></FORM>
<TABLE BORDER=1 BGCOLOR=0000FF>
<TR><TD BGCOLOR=FFFFA0><A HREF="#1" onmouseover="A2(NAGURU)" onclick="A1(NAGURU)">ここ</A></TD></TR>
</TABLE>
</CENTER>
<FORM NAME=TEXTAREA_FORM><TEXTAREA NAME=TEXTAREA_NAKAMI COLS=100% ROWS=5></TEXTAREA></FORM>
</BODY>
です。何でかなぁ……。指摘よろしくお願いします。

974 :Name_Not_Found:04/09/16 12:40:34 ID:???
parseInt()って先頭に0があると0が返っちゃうんだ。
知らなかったよ。

975 :Name_Not_Found:04/09/16 12:51:10 ID:???
>>973
アンタも説明が足らなすぎ。「ラジオボタンの1個目と2個目が動かない」
というのは具体的にどうなるはずだったのにどうなってしまうのか、
書いてくれないと。アンタの代わりにテスト実行する気無いからね。
(そもそも抜粋だし動かせないしね。)

確認するけど、ブラウザからエラーは出てないよね?

976 :Name_Not_Found:04/09/16 13:06:58 ID:???
>>956>>965

>>834


977 :Name_Not_Found:04/09/16 13:23:22 ID:???
>>973
> ATAI
> alert=(ATAI)
まず直せよ。どうせエラーも見てないんだろ

978 :Name_Not_Found:04/09/16 13:56:27 ID:???
次スレ
http://pc5.2ch.net/test/read.cgi/hp/1095310099/l50

979 :Name_Not_Found:04/09/16 17:32:33 ID:???
>>977
もしかして
> alert=(ATAI)
でエラーが出ると思ってるのか?

980 :Name_Not_Found:04/09/16 17:40:07 ID:???
>>979
いや別にそれでは出ないけど一般論としてさ。

981 :Name_Not_Found:04/09/16 17:50:11 ID:???


982 :Name_Not_Found:04/09/16 18:13:35 ID:???
(´-`).。oO(まず直せじゃなくて回答した上でついでに直せよと言うべきだろうに・・・)

983 :Name_Not_Found:04/09/16 18:20:59 ID:???
次スレ
http://pc5.2ch.net/test/read.cgi/hp/1095310099/l50

984 :Name_Not_Found:04/09/17 08:11:19 ID:???
おいおい、誰も埋めてねーずぁん

985 :Name_Not_Found:04/09/17 09:49:33 ID:???
直せっていうのはセミコロンつけろって事じゃないのか?

986 :Name_Not_Found:04/09/17 09:51:35 ID:???
それに=もいらないな

987 :Name_Not_Found:04/09/17 12:30:39 ID:???
代入してどうするんだか

988 :Name_Not_Found:04/09/17 12:50:07 ID:???
window.alertを使えなくする

989 :Name_Not_Found:04/09/17 12:50:51 ID:???
次スレ
http://pc5.2ch.net/test/read.cgi/hp/1095310099/l50

990 :Name_Not_Found:04/09/17 12:58:13 ID:???
ああ成る程

991 :Name_Not_Found:04/09/17 13:08:00 ID:???
あるある探検隊!
あるある探検隊!
はい!
はい!
はいはいはい!

992 :Name_Not_Found:04/09/17 18:12:18 ID:???
はい?

993 :Name_Not_Found:04/09/17 20:29:09 ID:???
993

994 :Name_Not_Found:04/09/17 23:00:34 ID:???
もしもーし

995 :Name_Not_Found:04/09/17 23:48:16 ID:???
996

996 :Name_Not_Found:04/09/17 23:49:56 ID:???
997

997 :Name_Not_Found:04/09/17 23:51:04 ID:???
998

998 :Name_Not_Found:04/09/17 23:52:06 ID:???
999

999 :Name_Not_Found:04/09/17 23:52:57 ID:???
1000!

1000 :Name_Not_Found:04/09/17 23:53:08 ID:???
1000
次スレ
http://pc5.2ch.net/test/read.cgi/hp/1095310099/l50


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

294 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)