+ JavaScript の質問用スレッド vol.57 +at HP
+ JavaScript の質問用スレッド vol.57 + - 暇つぶし2ch109:Name_Not_Found
07/06/17 14:59:23 d6ePygVI
>>106
Ajax と一言で言っても 使われ方は色々.
通常は "処理中" が そんなに長いことはないと思う.
(言い換えると "他のリンクBやCをクリック" する隙などない)
取り合えず, どういう目的で利用しているのか またはソースを提示...

110:106
07/06/17 15:56:34
>>108
画面内にたくさんのリンクがあるため最終手段として使わせていただきます。 ありがとうございます。

>>109
AJAXでCGIにパラメーターを渡し、スクレイピングさせた結果を表示させようとしています。

こういった処理はAJAXには不向きなのでしょうか?

URLリンク(www.openspc2.org)
こちらのAJAX一連の処理を呼び出す関数を自作しており、
引数は(テキスト挿入先ID,パラメーター)となっています。

function getText(id,param){
$id = id; //上記ページのcheck()の "result"部を$idに変えてあります。
xmlhttp = createXMLHttp();
if (xmlhttp) {
xmlhttp.onreadystatechange = check;
xmlhttp.open('POST','test.cgi',true);
xmlhttp.send(param);}}
という流れになっています。グローバル変数の使用がかなり怪しいのですが、
このような形でしかid部を可変にできないためそうしています。
長文失礼しました。

111:Name_Not_Found
07/06/17 16:07:42 d6ePygVI
>>110
普通に text file を読み込みに言ってるだけに見えるけど ?
物のついでだからサンプル作って見るかな ?
それを見て比較してみてはいかが ?

112:Name_Not_Found
07/06/17 16:15:36 d6ePygVI
>>110
訂正:
cgi に post してたのね.
ならば response が返って来るまで時間が掛ることもあり得る.
となると >>108 のやり方が有力になって来ると思う.
単に text file を読み込みに行くのがもっとも適した使い方じゃないかな ?

113:106
07/06/17 16:25:22
>>112
手間をかけていただきありがとうございます。
responseが返ってくるまで"読み込み中"と表示してなんとかごまかしています^^;
あらかじめサーバー側でテキストを作成しておくような仕様も検討してみます。
レスサンクスでした!

114:Name_Not_Found
07/06/17 16:31:24
すいません。
初心者ですが、よろしくお願いします。

java scriptで配列を用意して
formでそれをCGIに送って
テキストファイルに書き出すようにしたのですが、
配列
a[0][0]
の [ と ] が
%5Bと%5D%に文字化けしてしまいました。
HTMLのmetaでcharset変えたり
formのenctype変えたりしてみましたが、
どうにもうまくいきません。

どなたか、解決法ご存知ありませんでしょうか。
どうぞよろしくお願いします。

115:Name_Not_Found
07/06/17 16:33:57
開いているテキストエディター自体のエンコードはあってる?

116:Name_Not_Found
07/06/17 16:35:38
レスありがとうございます。
HTMLはdreamweaverで
CGIはterapadつかってますが、
ちょっと調べてみます。

117:Name_Not_Found
07/06/17 16:37:38 d6ePygVI
>>144
JavaScript の array をデータにするのではなく,
CSV か TSV に変換して送り出す
(CSV よりも TSV の方が扱いやすい)

118:Name_Not_Found
07/06/17 16:41:30
>>115
今HTMLのほうをEUC日本語にしてやってみましたが、
結果は同じでした。
他も試してみます。

>>117
レスありがとうございます。
CSVもTSVも知りませんでしたが、
あわせて調べてみます。


119:Name_Not_Found
07/06/17 17:04:25
もしかしてapatchが悪さしてるような気がしてきた…

120:Name_Not_Found
07/06/17 17:52:24
null 臭がする
また適当なことを言ってやがる

121:Name_Not_Found
07/06/17 18:08:39 NuImnqXC
なんだとおぅ

122:Name_Not_Found
07/06/17 18:26:11
URLエンコードされてんじゃね?

123:Name_Not_Found
07/06/17 18:36:35 d6ePygVI
>>120
聞き捨て なりませんな.
そもそも どの発言に対して言ってるのか ?
根拠のない当て推量をやってるのは むしろ おめ~さんだろ ?

124:Name_Not_Found
07/06/17 18:46:16 d6ePygVI
>>122 の言ってる通り.
ただ, JavaScript の array のまま CGI に送っても使い物にならない.
それならば TSV に変換しておけば
server side でも client side でも処理することが可能となる.

125:Name_Not_Found
07/06/17 19:07:47 d6ePygVI
>>120 が どう出て来るかが楽しみ. (くけけけけ)
この際, 荒れようがなんだろうが放置する訳にはいかないぜ !
null ちゃんの恐ろしさを思い知れ !

126:Name_Not_Found
07/06/17 19:20:55
ちっとも面白くない。ひっこめ。書くなら有意義なことを書け。

127:Name_Not_Found
07/06/17 19:23:46
>>106
素朴な疑問なんだが、別のリンクをクリックするということは
そのリンクをたどって別のページへ行くわけだろ?だったら
全部中止とかでいいんでないの。もしもそうじゃない
リンクの使い方をしてるんだったらまさかFAQ>>4 のQ9/A9を
読んでないわけじゃないよな?

128:Name_Not_Found
07/06/17 19:35:36
>>114
配列を「そのまま」CGIに渡すことなどできない。アンタが
できると勘違いして勝手に四苦八苦してるだけ。実際には
渡せるのは文字列だけ。

129:Name_Not_Found
07/06/17 19:42:35
>>122
ありがとうございました^^;
それでございました~!!!orz

130:Name_Not_Found
07/06/17 19:43:22
>>106
document.addEventListener('click',...)
Event#preventDefault()

131:Name_Not_Found
07/06/17 21:13:22
addEventListenerはいつになったらIEでも使えるようになるんで
ございましょうか。

132:Name_Not_Found
07/06/17 21:20:40
急に実装されても互換性のために誰も使わない

133:Name_Not_Found
07/06/17 21:24:17 d6ePygVI
>>131
IE の share が劇洛したとき.
言い換えると誰にも見向きされなくなった日.
Web に詳しい人なら IE のダメっプリは身にしみているけれど,
なにぶん OS デフォなので そのまま使い続けなければならない人達も...
(企業だとか, 官公庁だとか, はては漫画喫茶など)

じつは
on***=function(){f(x)}
形式なら IE でも Mozilla でも きちんと動作する.

134:Name_Not_Found
07/06/17 21:32:26 d6ePygVI
訂正:
elm.onclick=function(){f(x)}
elm.onmouseover=function(){f(x)}
elm.onmouseout=function(){f(x)}
---
など

135:Name_Not_Found
07/06/17 22:29:07
プルダウンメニュー(ボタン付)を数個作って、
それを組み合わせることで様々なページを表示させたいんですけど、どうすればいいでしょうか?

136:Name_Not_Found
07/06/17 23:33:45
>135
マルチ乙

137:Name_Not_Found
07/06/18 00:02:28 Fsxm7vxe
質問です。
「'[string]'に割り当てられません」というエラーは、どういうことが
原因で起こっているのでしょうか?

138:Name_Not_Found
07/06/18 00:03:26
>>137
"" = 0;

139:Name_Not_Found
07/06/18 00:14:45
>>135
プルダウンを組み合わせるとは具体的に? ソースは?

>>136
nullの野郎がヨソで暴れてたんだからさ。

140:Name_Not_Found
07/06/18 03:00:22 al450GnW
<div id="test">てすてすてす</div>

これの中心の座標が欲しいからstyleで
left + width/2
top + height/2
みたいにしてみた(parseInt済み)んですが、
これだと初期値を設定しておかないとNaNになるわけですが、
設定すると"てすてすてす"ぴったりの大きさにならないので困ってます(確認は背景色を付けてしました)。
ぴったり中心を取得する方法があれば御教示お願いします。

141:Name_Not_Found
07/06/18 03:39:34 25gWeDPo
>>139
"ヨソで暴れてた" たぁ以下のことか ?

429 :Name_Not_Found:2007/06/15(金) 23:56:03 ID:???
プルダウンメニュー(ボタン付)を数個作って、
それを組み合わせることで様々なページを表示させたいんですけど、どうすればいいでしょうか?

433 :Name_Not_Found:2007/06/16(土) 14:30:18 ID:P+YI6MXb
>>429
>プルダウンメニュー(ボタン付)を数個作って
"数個" って ああた !
使う物の身になって考えれば せいぜい 3 段が限度ですよん.
まあ, この手の物は 探せば いくらでも見つかるはず.

なんならサンプル作りますぜ. だんな~.
------------------------------------------------------
どういうものか返答はなかった.
そして, 同じ内容で こちらに...
これをマルチと言わずになんと呼ぶ ?

142:Name_Not_Found
07/06/18 03:44:13
>>140
elem.offsetWidth,elem.OffsetHeight,doc.getBoxObjectFor(elem),elem.getBoundingClientRect(),
doc.defaultView.getComputedStyle(elem,s),elem.currentStyle(s)

143:Name_Not_Found
07/06/18 03:52:44
>>140
ブロック要素の中央と "てすてすてす" の中央とは
一致しないと思うんだが

144:Name_Not_Found
07/06/18 08:14:49
>>141
だからその言い訳とかウダウダとした役に立たない解説
とか内容のない(有用でない)アドバイスとかが嫌われるんでしょ。
簡潔に的確なアドバイスできるようになったらまたおいでよ。

145:Name_Not_Found
07/06/18 09:32:15
>>142
ありがとうございます。
帰ったら試してみます。

>>143
大体中心ならおkです

146:Name_Not_Found
07/06/18 09:36:06 EEdpsv6u
質問です。
同じメソッドが3つ使われるようなとき、まとめて書く方法って
ありますか。つまり、
obj1.meso() + obj2.meso() + obj3.meso() ;
で、( obj1+ obj2+ obj3 )meso();
みたいに書けないかなと。
宜しくお願いします。

147:Name_Not_Found
07/06/18 10:19:49
ない。

148:Name_Not_Found
07/06/18 10:50:49
>>145
特に工夫してない限り,だいたい中心ですらない。CSSのボックスモデル
の勉強してから来い。つかもはやここではスレ違いだからよそ行け。

149:106
07/06/18 12:00:06
>>127
さきほど解決しました!レスありがとうございます!
xmlhttp.onreadystatechange = function(){
 if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
  document.getElementById(id).innerHTML = text;
 }
}
と、できることが分かり、セット先IDが狂わないようになりました。

>>130
ぼくとっては、マニアックすぎです!

150:Name_Not_Found
07/06/18 12:08:03
>>146
試したことがないからできるのかわからないけど、
複数のオブジェクトを管理するクラスを作ってみてはどうでしょう?
オブジェクトを追加していくメソッドを作って、
あとは全要素に対して処理をする関数をいくつかつくればスッキリしそう。

151:Name_Not_Found
07/06/18 17:13:48
URLリンク(www.colorjack.com)

これをフォームをクリックした時に表示されて、HEXをそのフォームに入力されるようにしたいですが、index.htmlを開き、保存したらピッカーが表示されなくなります。

編集しようにもできなくて…、誰か助けて下さい。

152:Name_Not_Found
07/06/18 17:27:41
>>151
外部CSSとか必要なファイルを持ってきてないんじゃない?

153:Name_Not_Found
07/06/18 17:40:52 h7JWkuIm
悪いんだけどちょっと教えて。

外部Javascriptファイルから別のJavascriptファイルをincludeするのってどうやるの?
検索キーワードが思いつかない。
include をキーワードに入れてもダメみたい。

154:Name_Not_Found
07/06/18 17:45:52
>>153
基本的には出来ない。
動的スクリプトローディングとかで検索したら出てくるかも。

155:Name_Not_Found
07/06/18 17:51:48 h7JWkuIm
>>154
うわ!すごい早い!
ほんとありがとう。すごく助かるよ。
匿名掲示板じゃなかったら御礼送りたいくらいだよ。

156:Name_Not_Found
07/06/18 18:07:05
>>153
amachangが外部jsの依存とか色々考えて断念してたよ
URLリンク(d.hatena.ne.jp)

157:154
07/06/18 18:10:07
>>155
いいんだよ。悪いな。
東京三菱銀行 池袋支店 普通 2045253 キタノモトフミ

158:Name_Not_Found
07/06/18 18:55:46
ワラタ
URLリンク(www.google.co.jp)

159:Name_Not_Found
07/06/18 19:43:39 h7JWkuIm
>>156
ありがと。参考にする。
>>157
了解。

160:Name_Not_Found
07/06/19 15:36:50 l9K4kB9E
質問させてください。
クッキーを使うユーザー登録フォームを作っているのですが、
エラー連発でどのようにして良いのかさっぱり分かりません。
とりあえずフィールドに適当な名前(デフォルト名を設定してあります。)を入力して、
送信ボタンを押すと、あなたのユーザー名(email)は: の部分に入力していたメールアドレスを表示させ、
クッキーにそれぞれの情報が記録(日付、名前、苗字、住所、メールアドレス、銀行名、銀行口座、支店番号)され、
クッキーの期限を1年で切れるように設定しているのですが、まったくうまくいきません…。
よろしければご教示お願いします。

製作中のフォームのHTMLです→ URLリンク(www4.50g.com)

161:Name_Not_Found
07/06/19 16:03:37
>>160

ソースをみると、日本語がエンティティ化(?)されてるのはナゼ?

162:Name_Not_Found
07/06/19 16:11:49 l9K4kB9E
>>160
英語版のWindowsで作っているので…

163:Name_Not_Found
07/06/19 16:20:58
クッキーに口座番号覚えさせるのか…

164:Name_Not_Found
07/06/19 16:30:15
>>160
まずmerchant.jsをちゃんとインデントして{}の数を合わせるのはどうだろうか?

165:Name_Not_Found
07/06/19 16:40:29 l9K4kB9E
>>163
セキュリティ上はたしかに問題なのですが、実験で作っているので…。

>>164
分かりました。ちょっとやってみます。

166:Name_Not_Found
07/06/19 16:45:06 HshXe65d
質問です。
1 2 3
4 5 6
7 8 9
のように出力させたいん
ですがどうloopを組めば
よいですか?
お願いします。

167:Name_Not_Found
07/06/19 16:48:45
>>166
ヒント:n%3==0;

168:Name_Not_Found
07/06/19 16:51:43
>>166
for (i=1; i<=9; i++) document.write(i+(i%3?" ":"<br>"));

169:Name_Not_Found
07/06/19 17:05:00 oGe4OuQK
同じ鯖にあるテキストファイルをJavaScriptで読み込んで表示させたいのですが
どのようにしたらできますか?

170:Name_Not_Found
07/06/19 17:08:40
>>169
XMLHttpRequestで読めるよ。(ブラウザで直に開けるとこにある
テキストファイルなら。) XMLHttpRequestの使い方は勉強すれ。

171:Name_Not_Found
07/06/19 17:14:52 oGe4OuQK
>>170
サンクス!調べてみる

172:Name_Not_Found
07/06/19 17:17:00 L0MUUMKY
>>170
ここで解決せれば それも良し.
よろしければ...
スレリンク(hp板)l50
 (Web Page Work Shop : 丸投げ上等 !)

173:Name_Not_Found
07/06/19 17:27:09 oGe4OuQK
var textload;
textload = new XMLHttpRequest();
textload.open("GET", "test.txt", false);
textload.send(null);
document.write(textload.responseText);

これだけでできました。(一応報告として
>>170さんありがとう


174:160
07/06/19 19:32:10 x0fcowHj
日本語版Windowsからです。

とりあえずクッキーの前に、送信ボタンを押したら、
次の画面にメールアドレスが表示されるようにしたいのですが、
どうすれば良いのでしょうか…。

ずっとやっているのですが、まったく表示されずどうしようもない状態に陥っています…。

175:Name_Not_Found
07/06/19 19:42:41 b4dmfCpZ
>>174
メアドをGETで渡して、location.hrefから抜き出すとか

176:166
07/06/19 19:44:31
>>167さん
ありがとうございました。
>>168さん
具体的にありがとうございました。
なるほど、勉強になりました。

177:Name_Not_Found
07/06/19 20:07:17 47aKFW3t
document.body.onclick=test;
でtestに引数を渡したい場合はどうすればいいのか教えて下さい

178:Name_Not_Found
07/06/19 20:28:34
>>177
function

179:Name_Not_Found
07/06/19 20:54:14
>>177
テンプレ中のFAQ >>4 Q14/A14は読んだんだろうな?

180:Name_Not_Found
07/06/19 21:19:45 47aKFW3t
>>178-179
Q14/A14の意味が分からなかったのですが今5回音読したら
ちょっと分かった気がしないでもないのであと10回黙読して弄ってみます。
ありがとうございました。

181:Name_Not_Found
07/06/20 03:11:27
URLリンク(www2.biglobe.ne.jp)~nir/icons/map/HSB.gif
URLリンク(www.qint.nl)

カラーピッカーに使うため、このようなグラデーションを作りたいのですが、
どのようにすればいいでしょうか?

182:Name_Not_Found
07/06/20 03:50:17 PFdRshW1
<html>
<head>
<script language="JavaScript">
<!--
OpenExtLink = function(el){
var url = el.href;
w = window.open();
w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
w.document.close();
return false;
};
-->
</script>
</head>
<body>
<a onClick="return OpenExtLink(this)" href="URLリンク(URL)<)のやつです

183:Name_Not_Found
07/06/20 04:20:12
>>182こんなのはどうでしょうか

<a href="test.html?URLリンク(google.com)てst</a>
test.html? URL , 飛ぶまでの時間

-
test.html
<html>
<head>
<script type="text/javascript">
str = location.search;
url = str.substring(1,str.length).split(",");
document.write('<meta http-equiv="refresh" content="'+url[1]+';url='+url[0]+'">');
</script>
</head>
<body>
test
</body>
</html>

184:Name_Not_Found
07/06/20 07:46:46
>>181
それを書くプログラムが過去ログにあったな

調べたらVol.54の161だ。ちょっと感動したから覚えてる

185:Name_Not_Found
07/06/20 08:59:35
>>181 書いてみた >>184 げげあったのね。でもそれ読めないじゃん。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function hsb2rgb(hue, sat, bright) {
var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue;
if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min;
else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min;
else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min;
else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min;
else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min;
else b = max - (deg-300)*(max-min)/60, r = max, g = min;
return 'rgb('+ Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')';
}
function show() {
for(var h = 0; h < 1; h += 0.01)
for(var b = 0; b < 1; b += 0.05) {
var x=250+200*b*Math.cos(2*Math.PI*h), y=250+200*b*Math.sin(2*Math.PI*h);
var e = document.createElement('div');
e.style.position = 'absolute'; e.style.width = e.style.height = '5px';
e.style.top = y + 'px'; e.style.left = x + 'px';
e.style.backgroundColor = hsb2rgb(h, 1, b); document.body.appendChild(e);
}
}
</script>
</head><body onload="show()"></body></html>

186:Name_Not_Found
07/06/20 10:25:47
>>185
車輪の再発明した上に品質劣化、しかも負け犬の遠吠え付ですか。
あと一つで満貫ですね。

187:Name_Not_Found
07/06/20 12:02:49
(´・ω・`)

188:Name_Not_Found
07/06/20 12:38:47 Q1DJsotc
すみません。
なぜ、とほほのJavaScript入門(正規表現)にはsearchメソッドが
ないのでしょうか。お分かりの方よろしくお願いします。

189:Name_Not_Found
07/06/20 13:05:16
とほほのことなんか知らん。内容古かったりするだけじゃないの?

190:Name_Not_Found
07/06/20 13:14:43
String#searchじゃなかったっけ

191:Name_Not_Found
07/06/20 13:48:52
searchなんてECMAにないだろ?

192:Name_Not_Found
07/06/20 14:00:20
>>191 それくらい確認してから書いたらどうなんだ。
URLリンク(www2u.biglobe.ne.jp)

193:188
07/06/20 14:13:04
>>189
JavaScript 1.2 って何年発効ですか?あってもおかしくないと
思うんですけど。ECMA-262にもありますし。


194:とおりすがり
07/06/20 14:19:26 jFe7iLdK
ここの奴らってたいしたことねえなぁ
>>190,191
こんなレヴェルかww

195:Name_Not_Found
07/06/20 14:19:47
>>192
俺の代わりに乙www

196:Name_Not_Found
07/06/20 14:22:26
1.2ってNetscape 3のころ?10年前くらいじゃないの。
どーしてもとほほが好きなら勝手にすればいいけど、
その内容をここに持ち込むのは時間の無駄だからやめてくれ。
テンプレの >>7 にも書いてあるだろ?
テンプレ読めない奴はここに来ないで欲しい。

197:Name_Not_Found
07/06/20 14:51:05
1.2はNetscape 4.0

198:Name_Not_Found
07/06/20 18:44:15
>>184
>>185

ありがとうございます。
僕にはまだ難しいようです…。
アルゴリズム的にはどんな感じなんでしょうか?
マウスの座標から色を生成したいのですが、色の並べ方というか計算方法がさっぱりで…。

199:Name_Not_Found
07/06/20 19:02:26
とほほにもあるみたいだけど?
URLリンク(www.tohoho-web.com)

200:Name_Not_Found
07/06/20 19:19:56
>>198
お前は>181で「グラデーションを作りたい」と言ってるだろ

なんで「マウスの座標から色を生成したい」に変わってるんだよクズ

201:Name_Not_Found
07/06/20 19:38:03
要件が曖昧だったとはいえ、カラーピッカーに使うためにグラデーションって言ってるんだから
普通に考えてグラデーションから色をとりたいんだなってことぐらい想像付くだろう。

202:Name_Not_Found
07/06/20 19:45:11
>>201
俺は200の肩をもつな
回答者はエスパーじゃないから質問は的確に、ってのは強く思う

マウス座標からの色の出し方ならこれが参考になる
184も185もHSVで書いてるからな
URLリンク(ja.wikipedia.org)

203:Name_Not_Found
07/06/20 20:16:20
>>200
カラーピッカー

204:Name_Not_Found
07/06/20 20:18:24
>>200
カラーピッカー

205:Name_Not_Found
07/06/20 20:25:51
>>201
>>203-204

>>181
「カラーピッカーに使うためにグラデーションを作りたい」

206:Name_Not_Found
07/06/20 20:30:10
描画メソッドのグラデーションでそういうの出来たっけ
やったこと無いからわからん

207:Name_Not_Found
07/06/20 20:39:34
>>201
普通は「カラッピーカーに使うためのグラデーションを~」と言われたらグラデーションの作り方を教えて欲しいのだと思う。
「ケーキを作るために生クリームが欲しい」と言われてケーキの作り方を教える奴は居ないだろう?

208:Name_Not_Found
07/06/20 20:43:13
×:ために
○:ための

ケーキのための生クリームと、スパゲティのための生クリームは違うと思うぞ
まあ、どうでもいいことでスレ埋めてもあれだがな

209:208
07/06/20 20:45:25
×:ために
○:ための

は間違いだスマン

210:Name_Not_Found
07/06/20 20:50:04
>>202
まあ、確かに。
エスパーですら回答困難な質問も少なくないしね。
とは言え、無駄に煽りすぎだろうと思ったからレスした。

>>207
普通はそうだろうけど、ここはJavaScriptスレだしさ。
まさかカラーピッカー用の画像が作りたいだけでJavaScriptは使わないだろうと。
逆に画像を作りたいだけなら十中八九スレ違いだし。

211:Name_Not_Found
07/06/20 21:03:58
しかしカラーピッカー用の画像を作る猛者が二人もいたのだがw
ま、PrintScreenでもして切り取って使えばいいさ

212:Name_Not_Found
07/06/21 09:27:38
カラーピッカに直して見ました。今IEが手元ないんでIEは未テスト。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function hsb2rgb(hue, sat, bright) {
var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue;
if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min;
else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min;
else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min;
else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min;
else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min;
else b = max - (deg-300)*(max-min)/60, r = max, g = min;
return 'rgb('+ Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')';
}
function init() {
for(var h = 0; h < 1; h += 0.01)
for(var b = 0; b < 1; b += 0.05) {
var x = 250 + (50+200*b)*Math.cos(2*Math.PI*h);
var y = 250 + (50+200*b)*Math.sin(2*Math.PI*h);
var e = document.createElement('div');
e.style.position = 'absolute'; e.style.width = e.style.height = '10px';
e.style.top = (y-5) + 'px'; e.style.left = (x-5) + 'px';
e.style.backgroundColor = hsb2rgb(h, 1, b); document.body.appendChild(e);
}
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE|Event.MOUEDOWN|Event.MOUSEUP, true);
window.onmousedown = function(e) { pick(e.pageX, e.pageY); }
} else {
var b = document.documentElement || document.body;
b.onmousedown = function() { pick(event.clientX, event.clientY); }
}
}

213:Name_Not_Found
07/06/21 09:28:59
function pick(x, y) {
var t=Math.atan2(y-250,x-250), l=Math.sqrt((y-250)*(y-250)+(x-250)*(x-250));
l = (Math.max(Math.min(l, 250), 50) - 50) / 200; t = (t/(Math.PI*2)+1)%1;
var rgb = hsb2rgb(t, 1, l), elt = document.getElementById('h1');
elt.innerHTML = rgb; elt.style.backgroundColor = rgb;
}
</script>
</head><body onload="init()">
<h1 id="h1" style="position:absolute; top:520px">Color Picker</h1>
</body></html>

214:Name_Not_Found
07/06/21 12:26:18 8fqJq2Uu
>>213
>今IEが手元ないんでIEは未テスト
> function pick(x, y)
x, y 供にエラーになるはず.
(Mozilla と IE では event の挙動が微妙に違う)

"よくぞ ここまで ! " と思う半面, 劇重 !!!

215:Name_Not_Found
07/06/21 12:31:01
>>214
今IE6で動かして見たけど動くみたいだけど…何が問題か教えてくれます?
MozでcaptureEventは古いんで警告出るね、addEventListenerに変更します。

216:Name_Not_Found
07/06/21 13:20:55
さらに採度も変更できるようにしてみましたー。劇重だけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function hsb2rgb(hue, sat, bright) {
var r, g, b, max = bright*255, min = max*(1-sat), deg = 360*hue;
if(deg < 60) g = min + (deg)*(max-min)/60, r = max, b = min;
else if(deg < 120) r = max - (deg-60)*(max-min)/60, g = max, b = min;
else if(deg < 180) b = min + (deg-120)*(max-min)/60, g = max, r = min;
else if(deg < 240) g = max - (deg-180)*(max-min)/60, b = max, r = min;
else if(deg < 300) r = min + (deg-240)*(max-min)/60, b = max, g = min;
else b = max - (deg-300)*(max-min)/60, r = max, g = min;
return 'rgb('+Math.floor(r)+','+Math.floor(g)+','+Math.floor(b)+')';
}
var sat = 1.0, hue = 0.0, bri = 1.0, box = {};
function show1() {
for(var h = 0; h < 1; h += 0.01) for(var b = 0; b < 1; b += 0.05) {
var x = 250 + (50+200*b)*Math.cos(2*Math.PI*h);
var y = 250 + (50+200*b)*Math.sin(2*Math.PI*h);
var e = box[h*100+b];
if(!e) { e = box[h*100+b] = document.createElement('div');
e.style.position = 'absolute'; e.style.width = e.style.height = '10px';
e.style.top = (y-5) + 'px'; e.style.left = (x-5) + 'px';
document.body.appendChild(e);
}
e.style.backgroundColor = hsb2rgb(h, sat, b);
}
}


217:Name_Not_Found
07/06/21 13:22:14
function show2() {
for(var s = 0; s < 20; ++s) for(var h = 0; h < 12; ++h) {
var e = box[-12*s-h-1];
if(!e) { e = box[-12*s-h-1] = document.createElement('div');
e.style.position = 'absolute'; e.style.width = e.style.height = '25px';
e.style.left = (550+25*h)+'px'; e.style.top = (s*25)+'px';
document.body.appendChild(e);
}
e.style.background = hsb2rgb(h/12, 0.05*s, bri);
}
}
function init() {
show1(); show2(); pick(500, 250);
if(window.addEventListener)
window.addEventListener('mousedown', function(e){pick(e.pageX,e.pageY);}, true);
else
document.body.onmousedown = function() { pick(event.clientX, event.clientY); };
}
function pick(x, y) {
if(x >= 550) {
hue=(Math.min(x,850)-550)/300; sat=Math.min(Math.max(y,0),500)/500; show1();
} else {
hue=Math.atan2(y-250,x-250); bri=Math.sqrt((y-250)*(y-250)+(x-250)*(x-250));
hue=(hue/(Math.PI*2)+1)%1; bri=(Math.max(Math.min(bri,250),50)-50)/200; show2();
}
var rgb = hsb2rgb(hue, sat, bri), elt = document.getElementById('h1');
elt.style.backgroundColor = rgb; elt.innerHTML = rgb+' H='+hue+' S='+sat+' B='+bri;
}
</script>
</head><body onload="init()">
<h1 id="h1" style="position:absolute; top:520px">Color Picker</h1></body></html>

218:Name_Not_Found
07/06/21 14:45:25 o8mdcrrt
変数を展開させたいんですが、どうすれば良いのでしょうか?

例えば、以下のようなファンクションで
inputNameとして渡されたname属性を持つ要素をカウントしたいのです。

function sampleFunction (inputName) {
var ElementsCount = document.form.inputName.length;
}

よろしくお願いします。

219:Name_Not_Found
07/06/21 14:57:11
質問ですが、HTMLから外部Javascriptにパラメータを渡すことは出来るでしょうか?

<script type="text/javascipt" src="hoge.js?XXXXXX"></script>

みたいなことをやってみましたが、Javascript側でこの「XXXXX」をどうやって
取得すればいいのか分からなかったです。「?」で付ける形式でなくても、
外部Javascriptに値が渡せればいいのですが。

220:Name_Not_Found
07/06/21 14:59:53
>>218
document.getElementsByName(inputName).length

221:Name_Not_Found
07/06/21 15:02:37
>>218
テンプレを読め。FAQに書いてあることを質問すな。テンプレが読めない
藻前は2度と来るな。
>>219
srcのURIは取れないから無理。グローバル変数に何か入れておき
呼ばれた方でそれを取るとかはどう?
<script type="text/javascript">
window.myparam = 'XXXXXX'
</script>
<script type="text/javascript" src="hoge.js"></script>
hoge.jsの中でwindow.myparamを読めば'XXXXXX'が入ってるでしょ。

222:218
07/06/21 15:08:27
>>220

ありがとうございます。

223:218
07/06/21 15:19:10
>>221
失礼しました。見落としてました・・・。

224:Name_Not_Found
07/06/21 16:10:55
>>219
正規表現とかよくわからないけどこんなのは?
それか、なんかのライブラリでそんなことしてるのあったよね?
Dojoだっけ?その中身見てみるとか。

var self = "script.js"; // jsのファイル名
regObj = new RegExp(self, "g"); // 正規表現
var script = document.getElementsByTagName('script'); // scriptタグとってくる
for (var i=script.length-1; i>=0; i--) { // scriptタグ分回す
  var result = script[i].src.match(regObj); // jsのファイル名に一致するか判定
  if ( (result) && (result.length > 0 ) ) { // 一致したら
    alert(script[i].src.split("?")[1]); // 「?」以降がクエリ文字列
  }
}


225:Name_Not_Found
07/06/21 18:01:28 8fqJq2Uu
>>215
>window.onmousedown = function(e) { pick(e.pageX, e.pageY); }
早とちりで申し訳ありません.
振り分けされているのを見逃していました.
でも IE 5.17(on MacOS9.1) では onmousudown での動作は無視されている模様.
IE 6 での動作確認は取りようがありません.

おわびと言っちゃなんですが.
window.onload=function(){
document.getElementById('btn').onclick=function(ev){exam(ev)}
}

function exam(_ev){
var ev=_ev?_ev:event; //ev:event
confirm(ev.clientX);
}

以上の記述で簡潔に できるかと...
IE 6 での動作確認を取っていただけると嬉しいっす.


226:Name_Not_Found
07/06/21 18:22:19
function viewpos(evt){
if(window.createPopup){// IE5.5以降
pos_x=event.x+document.body.scrollLeft;
pos_y=event.x+document.body.scrollTop;
}else{
pos_x=evt.pageX;
pos_y=evt.pageY;
}
}

227:Name_Not_Found
07/06/21 18:23:59
訂正

function viewpos(evt){
if(window.createPopup){// IE5.5以降
pos_x=event.x+document.body.scrollLeft;
pos_y=event.y+document.body.scrollTop;
}else{
pos_x=evt.pageX;
pos_y=evt.pageY;
}
}

228:Name_Not_Found
07/06/21 18:40:35
>>224
おおっ、すごい。そういう手があったか。どうもです。

229:Name_Not_Found
07/06/21 18:46:44
チャレンジしてみようと思ったんだけど、円のは難しいね。
四角のやつでやってみたよ。
明度無視だが、こんな感じでいいのかな。
ちなみにJavascriptは拾ってきたの使うレベル。

ピッカーサイズ:p
カーソルの位置:x
1つの範囲のピクセル数:ap = Math.floor(p/6)
x座標が属する範囲:a = Math.ceil(x/ap)
x座標の範囲内での位置:ax = x-(ap*a)
増減させる値:as = Math.round(ax*ap/255色*x)

あとはaの条件で分岐
 x座標が1番目の範囲内ならRが255で、Gが0から255まで増える
 x座標が2番目の範囲内ならGが255で、Rが255から0までが減る
 x座標が3番目の範囲内ならGが255で、Bが0から255まで増える
 x座標が4番目の範囲内ならBが255で、Gが255から0まで減る
 x座標が5番目の範囲内ならBが255で、Rが0から255まで増える
 x座標が6番目の範囲内ならRが255で、Bが255から0まで減る

230:229
07/06/21 18:48:38
間違い x座標の範囲内での位置:ax = x-(ap*a)
正しい x座標の範囲内での位置:ax = x-(ap*(a-1))

でもこれだと、座標0の時に色0にならんから、ifかなんかでやるしかないか。

231:Name_Not_Found
07/06/21 19:41:08 rOEcBZgr
基本的な質問ですいません。
他の言語(例えばCとかRubyとか)も日付関数のミリ秒の起点はJavaScriptと
同じなのでしょうか?


232:Name_Not_Found
07/06/21 19:43:11
カラーピッカーはFLASHで作るのが正解。

233:Name_Not_Found
07/06/21 20:34:09
正解(笑)

234:Name_Not_Found
07/06/21 20:56:10
正解なんて無い

235:Name_Not_Found
07/06/21 22:19:53
模範解答

236:Name_Not_Found
07/06/21 23:04:50
画像用意してマウスポインタを適当にいじればいいのに

237:Name_Not_Found
07/06/21 23:16:41
>>236
それじゃ彩度や明度を選んだら対応してピックする
画面が変化するという機能がつけられないだろ。 >>216-217 みたいに。

238:Name_Not_Found
07/06/21 23:26:40
透明度使えばいいじゃん

239:Name_Not_Found
07/06/21 23:35:50
色相、彩度は画像にして、明度のみ生成するって手もある。

240:Name_Not_Found
07/06/22 00:24:48
成分値は全部数値で入力させる

241:Name_Not_Found
07/06/22 00:52:59 uKykU1oi
>>91さんのを応用して以下のようにしたいのですが、<style>~</style>が
反映されません。<head>内に続けて書くことは無理なのでしょうか?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title></title>
<script type="text/javascript">
function check_nonempty(fname, ename) {
var e = document.forms[fname].elements[ename];
if(e.value == '') { e.style.background = 'red'; return false; }
e.style.background = 'white'; return true;
}
function check() {
var result = true;
if(!check_nonempty('f0', 't1')) result = false;
return result;
}
</script>
<style>
<!--
body{
scrollbar-arrow-color:#2f231e;
scrollbar-base-color:#ffffff;
scrollbar-darkshadow-color:#2f231e;
scrollbar-highlight-color:#2f231e;
scrollbar-shadow-color:#2f231e;
scrollbar-track-color:#ffffff;
}
-->
</style>
</head>
<body>

242:Name_Not_Found
07/06/22 01:44:56
>>241
JavaScriptの問題じゃない。
scrollbar-*は、標準モードではhtml要素に適用する。
両方指定しておけば無難かと。

ところで、Operaもこれに対応していたんだな。知らなかった。

243:Name_Not_Found
07/06/22 02:02:21
>>242
ありがとうございます。
いまいち区別がついていませんでした。
スレ違いとは思いますが、>両方指定しておけば無難かと
とは具体的にどのように指定すればよいのでしょうか?
無知ですみません。

244:Name_Not_Found
07/06/22 02:14:11
html, body {

スレ違い

245:Name_Not_Found
07/06/22 02:27:51
で、カラーピッカーは誰も答えれないと

246:Name_Not_Found
07/06/22 02:47:29
>>244
ありがとうざいました!

247:Name_Not_Found
07/06/22 02:59:24
>>245
いくつかコードが出てたみたいだけど
まだ解決してないの?

248:Name_Not_Found
07/06/22 05:00:06
カラーピッカーなんて腐る程作られたやつあるんだし
そのまま使うなり読むなりすりゃいいのに。

249:Name_Not_Found
07/06/22 09:15:09
カラーピッカーの元質問者が何を求めているのか未だに
分からないんだが。

250:Name_Not_Found
07/06/22 11:41:46
>>245
おまえ、バカだろ

251:Name_Not_Found
07/06/22 12:29:56 hXia+qYZ
質問ですが、JavaScriptって文字列変数がそのまま配列格納に
なったりするんですか?気持ち悪い言語だとは聞いていました
が、なんかバギーは現象は大丈夫ですか?

252:Name_Not_Found
07/06/22 13:00:30
>>251
JavaScriptは変数には型がない。配列等はすべてオブジェクト。
RubyもPythonもPHPもおんなじでしょ。でそれが何か。

253:Name_Not_Found
07/06/22 13:46:49
「文字列変数」という言い方にカビの生えたBASIC臭がするんですが。

254:Name_Not_Found
07/06/22 13:52:21
言語仕様と実装のバグは無関係。
バギーいいたいだけちゃうんかと。

255:251
07/06/22 15:49:49
>>252
さんくす。2行目がないと満点なんだが、周りから一言多いって
言われてない?

256:Name_Not_Found
07/06/22 16:55:01
>>255
悪いけどアンタに満点もらうのは却ってうれしくない気がするわ(笑)。

257:Name_Not_Found
07/06/23 00:25:16 pf5WOtYh
質問です。
ifで分けるとき、
if(A){.....}
if(B){.....}
if(C){.....}
のように羅列する書き方を見ますが、これは、
elseを使わなくてもこの書き方でも良いので
しょうか。基本なのでしっかり知りたいです。

258:Name_Not_Found
07/06/23 00:32:49
>>257
その場合だと3回評価するじゃん
else付いてたら始めのAを評価した時点でBとCを評価せずに抜けるでしょ
って、このくらいならどの本でも書いてありそうだけど何が聞きたいの?

259:257
07/06/23 00:38:16 pf5WOtYh
>>258
>何が聞きたいの?
正しい書き方です。でもご説明だとどっちでも良いということですか?
おけがでスッキリしました。ありがとうございました。

260:Name_Not_Found
07/06/23 00:45:25
>>259
どっちでもよくはない

261:Name_Not_Found
07/06/23 00:47:29
          /::::)(:::)(:::::::::::)(::::::^::::::::::\
      (::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::\
     /::::::::::/ノ::::::::ノ::::::::ヽ:人::::::::::ヽ:::::::::::::::)
     (::::::::::/  ):::ノ::::ノ ) ソ ヾ::::::::::::丶::::ヽ
    (:::::::::/ 彡  ノ   ノ  :: 彡:/)) ::::::::::)
   (::::::::::/彡彡彡彡彡   ミミミミミミミ :::::::::::)
   ( :::::::// ̄ ̄ ̄ ̄ヽ===/ ̄ ̄ ̄ ̄ヽ |:::::::::)
     | =ロ   -=・=-  ∥ ∥ -=・=-   ロ===
     |:/ ∥    / /ノ  ヽ \     ∥ ヽ|ヽ       _________
     |/  ヽ`======/ .⌒ ` ========ノ.   ..| |     /
    .( 。 ・:・‘。c .(●  ●) ;”・u。*@・:、‘)ノ  /
   ( 。;・0”*・o; / :::::l l::: ::: \ :。・;%:・。o ) <世界で一番、標準規格を捻じ曲げている企業に「W3Cに準拠した」とか言われてもなぁ(苦笑)
    (; 8@ ・。:// ̄ ̄ ̄ ̄\:\.”・:。;・’0.)   \
   .\。・:%,: )::::|.  ̄ ̄ ̄ ̄  | ::::(: o`*:c /..    \_________
    \ ::: o :::::::::\____/  ::::::::::   /
      (ヽ  ヽ:::: _- ::::: ⌒:: :::::::: -_    ノ
       \丶\_::_:::::_:::: :::::_/::::  /
        | \ \ ::::::::::: :::::::::: ::: ::__/ |
    ̄ ̄\ 丶  ̄ ̄ ̄ ̄ ̄ ̄ ̄    / ̄ ̄

262:Name_Not_Found
07/06/23 00:54:05
>>257
たとえば配列aに入っているデータで正のものと奇数のものとを
数えたいとする。
var pluscount = 0, oddcount = 0;
for(var i = 0; i < a.length; ++i) {
if(a[i] > 0) ++pluscount;
if(a[i] % 2 == 0) ++oddcount;
}
別の例として、正のものと、正でない奇数との数を数えたいものとする。
for(var i = 0; i < a.length; ++i) {
if(a[i] > 0) ++pluscount;
else if(a[i] % 2 == 0) ++oddcount;
}
ね、どちらが必要な場合もあるでしょ。∴正解は「適切な方を使う」だね。

263:Name_Not_Found
07/06/23 05:39:59
素人っぽい質問で申し訳ないんですが、例のカラーピッカー>>151のやつって
javascriptで作ったものなのなのでしょうか?
もしそうであれば、似たような感じでマウスのポインタを画面の◎部分に当て
て座標値を移動する、それに連動する感じでグラフ(曲線)も動くみたいな
ことをjavascriptでweb上で表示することは可能ですか?

264:Name_Not_Found
07/06/23 06:48:52 R24aA9AM
>>263
>マウスのポインタを画面の◎部分に当てて座標値を移動する
"◎部分" とは ?
"座標値を移動する" とは日本語として変じゃない ?

265:Name_Not_Found
07/06/23 06:49:13
やろうと思えばできる
あまりスマートではないが

266:Name_Not_Found
07/06/23 07:46:03 ogCAOMaX
質問があります。URLリンク(w2.oroti.com) こちらの方で
製品の一覧テーブルから条件を絞って結果を表示するページを製作しているのですが
左側で条件を指定してもレコードの部分に条件にマッチする製品の総合数の表示、
右側のテーブルがマージされず困っています。
URLリンク(w2.oroti.com) にコードを書いているので
どこが悪いか指摘してくださる方、いらっしゃいましたらご教示の方をお願いします。


267:Name_Not_Found
07/06/23 08:26:55
>>266
直そうかと思ったが、突っ込みどころ多すぎて全部指摘できないぞ。
全部一気に作ろうとするんじゃなくて、alert()仕込むとかして順に作っていけよ。

面倒ならここに依頼するのもいいかも
スレリンク(hp板)l50

268:Name_Not_Found
07/06/23 08:33:53
>>266
とりあえず init() がどこからも呼ばれていない

また行き詰まったらおいで

269:Name_Not_Found
07/06/23 08:45:19 ogCAOMaX
>>267
レス、直そうとしてくれてありがとうございます。
昨日の23時位からずっと製作していて、エラーは発生しなくなったのですが
相変わらず求めている結果にはなりません。
alert()を含めてもう一度チェックしつつ、丸投げの方もしてみます。

>>268
今、修正しました。痛恨のミスですorz
bodyから呼び出すようにしたのですが、相変わらず変化なしです。

270:Name_Not_Found
07/06/23 08:47:23
>>269
変化はあるはずなんだが…

IE なら黄色の三角が出てるでしょう

271:Name_Not_Found
07/06/23 09:20:37 R24aA9AM
>>267
正直, "面倒だ" と思ったけど, 逃げられそうにないなぁ.
先回りして それらしいものを作っとく.

272:Name_Not_Found
07/06/23 09:21:48 1kPbY9Pe
データの受け渡し方、受け取り方ってどうしたらいいですか?
具体的には、
リンクがいくつかあって、どれをクリックしても飛び先は同じ
ただ、押したリンクによって、表示される画像が違う、というものが作りたいんですが、
受け取ったメソッドをif構文で処理して画像を、というのはわかるんですが、渡し方、受け取り方がわかりません。
教えて下さいますようお願いします。

273:Name_Not_Found
07/06/23 09:23:32 ogCAOMaX
>>270
エラーが出ていますね…orz
ちょっと外の空気を吸ってきます。

一応ですが、JavaScriptを書いていない元ファイルを晒しておくので良かったら見てみてください。
URLリンク(w2.oroti.com)

274:Name_Not_Found
07/06/23 09:24:50 ogCAOMaX
>>271
ありがとうございます…orz 本当に感謝します。

275:Name_Not_Found
07/06/23 09:37:50 1kPbY9Pe
>>272
> 受け取ったメソッドをif構文で処理して
処理を処理して、っておかしいですね
perlのgetとか$ENV{'QUERY_STRING'}にあたる処理が知りたいんです

276:Name_Not_Found
07/06/23 09:38:19
このスレで「手取り足取り」するのやめてくれないかな。
そういうスレじゃないでしょ。「手取り足取り」が落ちる
のならそれは製作板がそういうものだということで、この
スレを「手取り足取り」にしたらこれも落ちるだけだろ。

277:Name_Not_Found
07/06/23 09:54:48
>>275
Perlのgetって何するの。$ENV{'QUERY_STRING'}だったら
location.queryだけど。

278:Name_Not_Found
07/06/23 10:00:53 1kPbY9Pe
>>277
<a href="index.cgi?data=one">1です</a>
<a href="index.cgi?data=two">2です</a>

みたいなHTMLがあって、2ですをクリックすると、
index.cgiで$ENV{'QUERY_STRING'}に「data=two」が送られます

a要素かなにかでなんらかの情報を付与させて送って、
受け取ったhtnl側で「aをもらってるからこっちの画像に」「bだからこっちの画像に」みたいにしたいんです

できない仕様なんでしょうか?
jsでcssを指定したデータって別のページでも継承してた記憶があるので、それを探してみることにします

279:Name_Not_Found
07/06/23 10:18:07 1kPbY9Pe
>>277
locationで調べたら、location.searchが出てきました
これが一番ほしいものに近いみたいです
有難う御座いました

280:Name_Not_Found
07/06/23 10:33:31
>>279
スマソかった、つい間違えた…

281:Name_Not_Found
07/06/23 10:36:29 1kPbY9Pe
>>280
いえとんでもないです
そのお答えがいただけてなかったらlocationに気付くことはなかったです
感謝しています

href="sample.html?active">で?activeが渡せるようになったので、
次はそれで<img src="active.jpg">にもっていけるように勉強してみます

有難う御座いました

282:Name_Not_Found
07/06/23 12:06:43 fEmCbeMN
function closeElements(source, otherids) {
var arr_other_elements = otherids.split(",");
for(i=0; i<arr_other_elements.length; i++) {
if(document.getElementById('img' + arr_other_elements[i]).name == 'close') {
document.getElementById('element' + arr_other_elements[i]).style.display = 'none';
document.getElementById('img' + arr_other_elements[i]).name = 'open'
document.getElementById('img' + arr_other_elements[i]).src = source + 'plus.gif';
}
}
}

ある要素をクリックするとチェックボックスが二つ表示され
もう一度クリックするとチェックボックスが非表示になるスクリプトなのだが
document.getElementById('img' + arr_other_elements[i]) has no propertiesというエラーが発生

無知な上他人のスクリプトを使っているから助けてほしい

283:Name_Not_Found
07/06/23 12:11:58
>>282
その要素に正しくIDが振ってないとかじゃねの?
alert('img'+arr_other_elements[i]);
をループ内に入れて実行してみては。しかしなんでそんな
面倒なことしてるのかよく分からんけど。

284:Name_Not_Found
07/06/23 12:13:06
<a onClick=alert(this.innerText) href="javascript(0);">TEST</a>

というようなリンクを動的に作り、クリックすると"undefined"が表示されます。
オブジェクトであるthisを取れない原因としては何があるのでしょうか?
どうぞよろしくお願い致します。

285:Name_Not_Found
07/06/23 12:21:21 fEmCbeMN
>>283
HTML要素にはimg1しかない上、そのFunctionを読み込まなければ一見正常なのだが
そのFunctionが何をするのか分からないためエラーを直したい

ちなみにスクリプト全体としてはそのFunctionの上にもう一つ。
function changeVisibility(displayid, source, otherids) {

var displayelement = document.getElementById('element' + displayid);
var imgelement = document.getElementById('img' + displayid);
if(imgelement.name == 'open') {
displayelement.style.display = 'block';
document.getElementById('img' + displayid).name = 'close';
document.getElementById('img' + displayid).src = source + 'minus.gif';
if(otherids.length)
closeElements(source, otherids);
}
else {
displayelement.style.display = 'none';
document.getElementById('img' + displayid).name = 'open';
document.getElementById('img' + displayid).src = source + 'plus.gif';
}

}

286:Name_Not_Found
07/06/23 12:22:38
さあ… innerHTMLだと取れるけどなあ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
</script>
</head><body>
<p><a href="#" onclick="alert(this.innerHTML)">test</a></p>
</body></html>

287:Name_Not_Found
07/06/23 12:25:47
>>285
言ってることが分からないのか?getElementByIdの引数で
指定しているID名とHTML側のID名が一致してないから出るエラー
だろ。だからHTML側も貼らないとチェックできない。もっとも
そんなの自分でチェックすりゃいいじゃん。

288:Name_Not_Found
07/06/23 12:30:51
>>284
普通に動くが。
どうやって動的に作っているかという方が問題かな。
そっちのスクリプトを出してもらわないと。

てか、IE以外のブラウザを使っているっていうオチじゃないよな?

289:284
07/06/23 13:12:25
レスありがとうございます。あいまいな質問でしたので補足です。
使用ブラウザはIEとIEベースのタブブラウザです。
動的に出力した部分のソースは間違いなく
<a onClick=def(this) href="javascript(0);" value="test">TEST</a>
となっています。自作関数def()の中で、
obj.value, obj.innerText, obj.hrefを表示させようとするとinnerTextのみが表示されないので
クリックされたタグ全体をアラートしたところ、
"<a onClick=def(this) href="javascript(0);" value="test"></a>"
と、innerTextが消えてしまいます。






290:Name_Not_Found
07/06/23 13:22:27 fEmCbeMN
>>287
そのことは>>285の最初に書いてあるとして、今Javascript側のIDをimg1にして合わせたのだが
今度は何故か要素をクリックしてもCheckboxが現れない

やはりcloseElementの関数を読み込まなければ一見正常なので、
可能ならcloseElementがどういった関数なのか教えてくれ

291:266
07/06/23 13:38:46 ogCAOMaX
266です。
alert()を仕込んで、どうにか左側に右テーブルの合計数は出るようになりましたが、
Line8と69に「Not Implemented」というエラーがずっと出続けてどうにもならない状態になっています。

URLリンク(w2.oroti.com)

292:Name_Not_Found
07/06/23 13:59:28
>>289
だから作っているところを出さないとどうしようもないって。

>クリックされたタグ全体をアラートしたところ、
>"<a onClick=def(this) href="javascript(0);" value="test"></a>"
これって、innerHTMLかouterHTMLを出したんだろ?
動的に出力した部分にテキストが入っていないことだけは確実なはずで、
どうして「間違いなく~となっている」と自信持っていえるのかが分からない。

293:284
07/06/23 14:09:12
>>292
それは、画面に出力された後に、選択された部分のみのソースを見る機能にて確認しました。
あと、AJAXにて動的に出力直前の文字列をテキストに書き出したのを見ても期待通りなんです。

ホント謎です。。

294:Name_Not_Found
07/06/23 14:43:03
>>293
だからスクリプトを出せと・・・あ、分かった。
どっかで
if (obj.innerHTML = '')
なんてif文書いてないか?

295: ◆.PT9876/4U
07/06/23 14:44:23 R24aA9AM
>>291
移動するのか, ここに居続けるのかはっきりしてくれ~.
ここに居続けるのなら僕は関与しない.
そもそも "何をやろうとしているのか" が はっきりしないので気が向かないのだ.
(とりあえず, 条件に合わない row を隠そうとしているのだけは解った)

一応上記の目的の script は書いた.
しかし, "yes" "no" の cell が 2 つ並んでいるため bug 発生.
これを直そうとすると根本的に書き直さなければならない.
正直, 投げ出したい気持ちだ.

296:266
07/06/23 15:35:20 rKv4NEsu
違うPCからです。

>>295
すいません。Web Page Work Shopの方に移動します。

297: ◆.PT9876/4U
07/06/23 15:41:20 R24aA9AM
>>296
了解,
取り合えず, "条件で row の display を切り替える script" の完動するものを作る.
その他詳細は先方で...

298:284
07/06/23 15:45:43
>>294
色々スクラップ&スクラップしていたら解決しました!
ID指定で放り込む前に、
fuction loading(id){
 document.getElementById(id).innerHTML = "Loading...";
}
という小細工関数を外したらthisをちゃんと扱えるようになりました。
このloading()関数を実行したことにより、引数で渡したthisが変わってしまったのでしょうか、、?

もしかすると前にも意見を頂いた方のような気がします。ホントに感謝です!

299:266
07/06/23 17:00:29 rKv4NEsu
>>297
本当にありがとうございます。
あちらの方にレス返しておいたのでチェックよろしくお願いします。

300:Name_Not_Found
07/06/23 17:17:49
質問です
あるノードが持つイベントリスナの一覧を取得する方法(メソッドなど)はないでしょうか?
あれば方法を教えてください

DOM2 Eventsにはそういったようなものはないようなので
ベンダ拡張のものでも構いません(ラッパーを作成してそれに取り入れたいと思っています)

301:Name_Not_Found
07/06/23 17:26:14
>>300
そのノードのすべてのイベントをチェックしてfunctionが返ってきたら…っていう方法はどう?

302:Name_Not_Found
07/06/23 17:29:27 8ibfAcbw
<FORM>(略)
<INPUT TYPE=SUBMIT VALUE=投稿する onClick=seigyo();'>
</FORM>
でSUBMITボタンを押した後に前回投稿より30秒しか立ってなかったら
ダイアログを出すようにしているのですが、ダイアログが出たあとOKを押したら
そのまま投稿してしまいます。どうやって投稿を中止させたらよいのでしょうか?
よろしくお願いします。

303:Name_Not_Found
07/06/23 17:38:14
>>302
return

304:Name_Not_Found
07/06/23 18:06:52 8ibfAcbw
>>303
動いてしまいました^^;
return;を関数の中に入れたのですが間違ってますか?

305:Name_Not_Found
07/06/23 18:13:01
IEならretur false

306:Name_Not_Found
07/06/23 18:20:41
>>301
ありがとうございます
イベントハンドラとしてしか関数を追加できない環境の場合はそれでいいと思うのですが、
DOM Eventsを実装している環境に対してはaddEventListenerを使用したいのです
やはりprototype.jsのようにすべて自分で管理する以外ないのでしょうか?

307:Name_Not_Found
07/06/23 18:35:05
>>306
ないだろうな
addEventListenerに[[ReadOnly]]が付いていないブラウザだったら
onloadで強制的に書き換えてしまうというのも手だけど

308:Name_Not_Found
07/06/23 21:06:32
>>307
ありがとうございます。ないですか…
イベントリスナ一覧が取得できるようなメソッド
(あるとすればEventTarget#getEventListeners(type)のような…
getEventListenersByEventTypeでしょうか?)が
独自の実装としてでもあっていいような気がするんですけどね

>onloadで強制的に書き換え
これは具体的にどのようになるのでしょうか?

309:Name_Not_Found
07/06/23 23:25:14
JavaScriptのパスワードを教えてほしいです。
サイトに書いてあるのはよく分からんので、この天才の集い2chに聞こうと思いました。
よろしくおねがいします。

310:Name_Not_Found
07/06/23 23:32:25
右に2左に4

311:Name_Not_Found
07/06/23 23:52:03
三回まわってワンと吼える

312:Name_Not_Found
07/06/23 23:53:20
イロイッカイヅツ

313:Name_Not_Found
07/06/24 07:25:31
おまえらのはパスワードじゃないだろw
真のパスワードはこれだ、
ゆうていみやおうきむこうほりいゆうじとりやまあきらぺぺぺぺぺぺぺぺぺ…

314:Name_Not_Found
07/06/24 11:15:27
いや, 真のパスワードはこれだ.

16t{Qen+s|G2P8oj9[OFQbxR;[ClPU[N3mjSV}2hB}DkF[Az[AbE)[D[K
l[N(IL3B(a38[B7ROag[Mp[Lr-[CrG6-E[B7dNxVGlSy[Fko2Rd=1[G.=m
dGPe:w9[C8[FsEuB[FyQDy[Jz;[BJUq~[MavF[L~xTjV9PUc=[Lu/mM[I-J
6^Jv%Gi[O[N+yi0+_C7o[K[I8[F-Fcd[AVI%jE2/-eD[KOF9ez[CM1f3|1
0eu8EEk[IZcfXX[LwAjRcG9m_P$8[J[L[K2d[GT[O=Df-$ykQ5Gmb9g7r
5z[E|Lm[G2*LiZ^Y[CFe^;T2YK0tf4nuTp`jMfe[FNzfbWQM+lMu:o
b;K`ozaaAnjFZLOb45zgBC_a~xSrL9x%j8,dBz2c0jh;,8%3`.
B(`|Lh_w:wdm[H[N%1ggbHFYNhMyPU+r1R0d^l[I{:934[E[LFp[O_AN
o$/7[Fp[H|sFh%[C#vGKp`qd%d.oyXvONG5qoFA?([Ide[N_lOy`p6x
ki[F`YoCmEux~c!MqL[Ko(6j![KOfpV|fG[H[MfHC:`^co9^ZiE[O[L[A[G
3q(,%EgnP[Fk[N%X[O6tU1Dau3{EG:y[M_j;dpcpc[C-*
@v2:,@3|m|g8y(CPd+I|[G*p[KY[M

315:Name_Not_Found
07/06/24 11:21:49
>>306
>イベントハンドラとしてしか関数を追加できない
それは追加じゃないだろ。書き換えだろ。

そして、関数式や関数名を右辺に書いてイベントプロパティに代入するしかないブラウザは、IE4、Opera6、NN4、などに限られる。
今のインターネット人口の何マイクロパーセントが、果たしてこれらを実使用したことがあるかなw

316:Name_Not_Found
07/06/24 11:46:10
1マイクロパーセント=1億分の1。
いくらなんでも少なく見積もりすぎだろ。
今使っている人でも1パーミルくらいはいるんじゃないか?

317:Name_Not_Found
07/06/24 15:10:32 eWafetu7
質問です。


z-index=0の<TD>要素AとBがあって
| A |
---
| B |

そこにz-index=5の<DIV>要素Cを重ねます。
| C |
|  |

このとき、Cの上側にマウスを持っていったらAのonMouseOver
Cの下側にマウスを持っていったらBのonMouseOverを起こしたいのですが
マウスをCの上側にしても下側にしても必ずAのonMouseOverが起こってしまいます。

うまくA,Bのonmouseoverイベントを取得するにはどうしたらいいでしょうか?
よろしくお願いします。

318:Name_Not_Found
07/06/24 15:25:14
>>317 やってみたら問題なくできるんだが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<table border="2" sumary="test"><tbody>
<tr><th onmouseover="alert('A')">AAAAA<br>AAAAA<br>AAAAA<br>AAAAA</th></tr>
<tr><th onmouseover="alert('B')">BBBBB<br>BBBBB<br>BBBBB<br>BBBBB</th></tr>
</tbody></table>
<div style="position:absolute; z-index: 5; top:40px; width: 200px; background: y\
ellow">
CCC<br>CCC<br>CCC<br>CCC<br>CCC</div>
</body></html>

319:Name_Not_Found
07/06/24 15:34:25
>>317
marginとかpaddingの問題は?

320:Name_Not_Found
07/06/24 15:59:28
>>317
AとBは重なっていないのにB上でAのイベントが発生するってこと?
HTMLを見直したほうがいいかも

321:Name_Not_Found
07/06/24 17:57:06
ある変数の値を100~0~100という風に往復させる
スマートな方法を教えて下さい。

322:Name_Not_Found
07/06/24 18:04:38
>>321
スマートっていうのが何を求めているのかわからないけど、
ある変数を往復させるとき100ずつ変化させたらスマートじゃない?

var a = 100;

a -= 100;
a += 100;

スマート?

323:Name_Not_Found
07/06/24 18:14:13
>>322
すみません、説明不足でした
setIntervalの中で100→99→98……0→1→2…
という風にしたいのです
なるべく増加中・減少中のフラグ無しでやりたいのですが…

324:Name_Not_Found
07/06/24 18:21:52
>>323
function (){
    var i = 100;
    while(i > 0){
        i--;
    }
    while(i < 100){
        i++;
    }
}

あんまスマートじゃないかもしれないけどこれをひたすらsetIntervalでまわしてくれ!
100→99→98……0→1→2…ってなるから。

325:Name_Not_Found
07/06/24 18:24:25
やりようはいくらでもあるだろうけど
スマートなやり方があるなら私も知りたいな

私が考えたのはこれ

for(var i = 1000; i < 2000; i++){
var j = i.toString().match(/(\d+)(\d{2})/);
j[2] = (j[1] % 2) ? 100 - j[2] : j[2] - 0;
document.write(j[2] + "<br>");
}

326:Name_Not_Found
07/06/24 18:40:14 yEcW/1/6
イベントがどうもよくわからないので質問させてください
ここにあるような感じでオブジェクト指向をもちいて、URLからXMLを取得するクラスをつくりました
URLリンク(ishikawa.arielworks.com)

http_obj.onreadystatechangeのイベントが一回しか呼ばれず
http_obj.statusの値が「1」にしかなっていません
URLにアクセスして読み込みが終了して、http_obj.statusが「4」になったときもイベントが起こりそうなのですが
起こらない状態です
どういうことなのでしょうか?

[html側]
<script type="text/javascript">
var xml_request = new GetXML();

function PrintXML(xml){
  alert(xml);
}

function Test(){
  var url = 'XMLを取得するURL';
  var query = 'XMLを取得するときのクエリ';
  xml_request.ConnectURL(PrintXML, function(){xml_request.CallBack();}, url, query, 'GET');
}
</script>

327:326
07/06/24 18:41:18 yEcW/1/6
[JavaScript側]
function GetXML(){
  this.http_obj = new XMLHttpRequest();
}

GetXML.prototype.http_obj;
GetXML.prototype.KeepFunction;

GetXML.prototype.ConnectURL = function ConnectURL(FuncSuccess, FuncCallBack, url, query, method){
this.KeepFunction = FuncSuccess;

this.http_obj.open(method, url, true);
this.http_obj.onreadystatechange = FuncCallBack;
this.http_obj.send(query);
}

GetXML.prototype.CallBack = function(){
  if(this.http_obj.readyState == 4){
    if(this.http_obj.status == 200){
      this.KeepFunction(this.http_obj.responseXML);
    }else{
      alert("URL接続失敗");
    }
  }
}


328:Name_Not_Found
07/06/24 18:44:27
var i = 100, d = -1;
setInterval(function(){
document.getElementById('count').innerHTML = i;
i += d;
if (i == 0 || i == 100) d = -d;
}, 100);

329:Name_Not_Found
07/06/24 18:45:44
>>321
普通にやっちゃだめなん?
var a = 100;
var d = -1;
function () {
<何か処理>
a += d;
if (a == 0 || a == 100) d = -d;
}

>>324
ならないだろ。常に100。

330:329
07/06/24 18:51:33
考えることは同じだな。まあ普通か

331:328
07/06/24 18:51:57
>>329
結婚を前提としてお付き合いさせてください!

332:321
07/06/24 18:56:01
皆さんありがとうございます。

全部試しましたが、やはり>>328-329でいきます。
ありがとうございました

333:Name_Not_Found
07/06/24 22:36:14
n個の数値から重複しない順列
たとえば n = 3 のとき
012 021 102 120 201 210 のように
全て列挙(配列に格納でもOK)するとして
この n の値をできるだけ大きくしたいのです。
何か良いアルゴリズムはありませんか。

334:Name_Not_Found
07/06/24 22:46:32
>>328-332
vol.41の598でガイシュツだったねー。

335:Name_Not_Found
07/06/24 22:52:33
たまにアルゴリズムの話になるんだけど、どっかにアルゴリズムスレはないの?

JavaScript特有の書き方の話までいけば「へぇ」って思うことはあるんだけど、
完璧にアルゴリズムだけの話になるとスレ違いな気がする


336:Name_Not_Found
07/06/24 23:04:56
>>335 主張は分かるけど頻繁じゃないし追い返す程でもないでしょ。
>>333 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function perm(elts, seq, pos) {
if(pos >= elts.length) { seq.push(elts.join('')); return; }
perm(elts, seq, pos+1);
for(var i = pos+1; i < elts.length; ++i) {
var z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
perm(elts, seq, pos+1);
}
}
var elts = [0,1,2,3,4,5], seq = [];
perm(elts, seq, 0);
document.writeln('<p>' + seq.join(' ') + '</p>');
</script>
</body></html>

337:Name_Not_Found
07/06/24 23:06:08
でも、このスレでそんな質問するようなレベルのやつは
アルゴリズムがわかってもjavascriptで書けないんじゃないかな

338:Name_Not_Found
07/06/24 23:10:10
>>336 げげっ! 全然間違っている、少々お待ちを…

339:Name_Not_Found
07/06/24 23:15:01
>>336-338 1行抜けていた…
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function perm(elts, seq, pos) {
if(pos >= elts.length) { seq.push(elts.join('')); return; }
perm(elts, seq, pos+1);
for(var i = pos+1; i < elts.length; ++i) {
var z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
perm(elts, seq, pos+1);
z = elts[i]; elts[i] = elts[pos]; elts[pos] =z;
}
}
var elts = [0,1,2,3,4,5], seq = [];
perm(elts, seq, 0);
document.writeln('<p>' + seq.join(' ') + '</p>');
</script>
</body></html>

340:Name_Not_Found
07/06/24 23:17:01
>>335-337
言葉足らずですみません。
JavaScriptで書くことを前提としての質問です。
たとえば>>336のプログラムでも n = 8 程で
かなりの時間がかかってしまいます。
これをできれば n = 10 以上でもすぐ列挙を
できるようにしたいのです。
繰り返し処理がメインなので書き方次第で
速度もかなり違ってくるのではと思いましたが
JavaScriptでは速度的に難しいのでしょうか・・・


341:Name_Not_Found
07/06/24 23:25:19
>>340
あのさあ、n = 10 だと全部配列に生成したら3628800通り
だからその要素数の配列が必要になるわけだよ。そんなのC
だって遅いだろ。全部要るわけじゃなくて最初からちょっとだけ
使うとかなわけ?

342:335
07/06/24 23:30:50
>>340
>>336見て、「優しい人がいるもんだなぁ」と思ってたが見事な台無しの仕方だな

まずjavascript前提の質問だったら何でそんなことが必要なのよ?
CGIでやらせるんじゃダメなわけ?遷移するのが嫌ならAjax使うとかでもいいだろうし。
目的がわからないと答える方も二度手間になるよ?

343:Name_Not_Found
07/06/24 23:37:06
>>335みたいにヒントも与えられず
答えもしないのに文句だけ言う奴が最近多いな

>>333
根本的に無理。
そこまでいくとアルゴリズムでどうにかできる範囲じゃない

344:Name_Not_Found
07/06/24 23:50:19
洩れも>>335すっこめと思った。CGIでやったって400万の配列
生成してどーすんのよ? ピント外れも甚だしい。
これって完全にnullのパターンだよな…

345:Name_Not_Found
07/06/25 00:07:58
実は、nullでした。バレました?

346:Name_Not_Found
07/06/25 00:12:32
null は意地でも
気持ち悪い半角句読点を使うから
別人でしょ

347:333
07/06/25 00:12:56
>>341-344
どうやら大きい数の列挙は無理そうですね。
諦めます。ありがとうございました。

>>336,338-339さん
せっかく組んで頂いたのに申し訳ありません。
ありがとうございました。

348:Name_Not_Found
07/06/25 00:25:21
>>343,344
不快な気持ちにさせてしまったのか申し訳ない。
最近やけに多くなってレスが埋まるなって思ってしまいつい。
CGIって言ったのは、javascript側でやるよかCGIでやる方が速いだろって思ったんだよ。

>>347
何か個人攻撃っぽくなってしまったごめん

349:Name_Not_Found
07/06/25 00:27:40
ホレ氏乙

350:Name_Not_Found
07/06/25 01:14:38
結局何がしたいのかわからんかったな

351:Name_Not_Found
07/06/25 02:08:25
function p(n) {
    if (n < 2) {
        yield [0];
    } else {
        let N = n - 1;
        let g = p(N);
        while (true) {
            let u = g.next();
            for (let [v, i] = [, 0]; i < n; i++) {
                (v = u.slice(0)).splice(i, 0, N);
                yield v;
            }
        }
    }
}

js> let g = p(30);
js> g.next()
29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
js> g.next()
28,29,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
js> g.next()
28,27,29,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0

352:Name_Not_Found
07/06/25 12:44:35
>>321
出遅れたけど思いついたんで書いとく。

var v = -1 ;

function vibration() {
  v = (v + 1) % 200 ;
  return Math.abs(v-100) ;
}

353:Name_Not_Found
07/06/25 12:56:40 aSAdCUdR
質問です。

●●.htmlから○○.htmlをiframeで読み込んで、
○○.html内の画像のスワップイメージで●●.html上の画像を変える事は
できないんですかね?
やり方を教えてください。

354:321
07/06/25 12:58:55
>>352
これです!!絶対値までは思いついていたんですが、あと一歩が出なかったんです!!
最高にスマートです!!ありがとうございました!!!

355:Name_Not_Found
07/06/25 13:02:31 yjW/+9fS
しっかりこちらに漂着.
さて, 回答する人はいるのか ? (わくわく)

356:Name_Not_Found
07/06/25 13:10:12
null がすりゃいいダロ

357:Name_Not_Found
07/06/25 13:29:43
>>353
2つのHTMLが同一鯖ならできるが別鯖なら絶対不可能。
frames.IFRAMEの名前.document.images.IMGの名前.src = '画像のURI';

358:Name_Not_Found
07/06/25 13:32:51
>>355
もしかして >>317-318 のことを言っている?質問者逃げたかも。

359:Name_Not_Found
07/06/25 17:19:39 u7Jcm1wx
<input type="text" name="hoge" id="piyo" onFocus="~">と同じ動作を
document.getElementById("piyo")で処理させたいのですが、

var aaa = document.getElementById("piyo");
aaa.onfocus = function(){~}

とすると動いてくれません…。どうすればいいのでしょうか?

360:Name_Not_Found
07/06/25 17:23:03
>>359
そのdocument.getElementById()は「当該要素piyoが読み込まれた後で」
実行されるようになってるんだろうな?

361:Name_Not_Found
07/06/25 17:31:38 yjW/+9fS
>>356
我が辞書に "frame" の文字なし

>>355
WebProg 板にも出没.
結局, 誰にも相手にされず...

>>359
window.onload=function(){
document.getElementById('piyo').onfocus=function(){~}
}

362:Name_Not_Found
07/06/25 22:40:18
URLリンク(www13.plala.or.jp)
のブロック崩しのソースコードを読んでいます。
"index.html"の下に"main.html"と"sub.html"の2つのフレームが置いてあり、
計3つのHTMLファイルでJavaScriptが動いています。

"sub.html"の中に下のような部分があるのですが、これは何をしているのでしょうか?
コールバックのトリガーみたいなのですが、仕組みがよくわかりません。
特に、「this.call = function()」「parent.callback = new CallBack()」のところが。
"callback"というのは、親フレーム(index.html)の変数で、兄弟フレームからも参照されています。
詳しい方、よろしくお願いします。

function CallBack() {
  this.call = function() {
    parent.fGame_init();
    parent.timerID = setTimeout( "gamemain()" , 0 );
  }
}
parent.callback = new CallBack();

※各URL
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)

363:Name_Not_Found
07/06/25 22:46:32
>>362
典型的な OOP 記述.
function CallBack() は いわゆる constructor と呼ばれるもの

364:362
07/06/25 23:02:00
OOP関係ですか。知りませんでした。
少し調べたのですが、ちょっとすぐには理解できなさそうです。
勉強し直します。ありがとうございました。


365:Name_Not_Found
07/06/26 00:35:25 3/vkJzX1
あの、javascriptで2chとまったく同じデザイン、機能や仕様の掲示板って
作れるのでしょうか?

366:Name_Not_Found
07/06/26 00:38:05
はい?

367:Name_Not_Found
07/06/26 01:22:12 rDYL9hqk
URLリンク(q.hatena.ne.jp)
ここに書いてあることと同じことをしたら
>newDoc.getElementById("NotUnique")
この部分で
「getElmentById is not a function」
とエラーが出てしまいました
どうしてなのでしょうか?

368:Name_Not_Found
07/06/26 01:29:28
>>367
そのエラーメッセージはコピペしたんだよな?
だったら、getElmentByIdというメソッドが存在しないから。

369:Name_Not_Found
07/06/26 01:36:20 3/vkJzX1
javascriptでwebの掲示板作りって可能なんですよね?では2ちゃんねるの
ようなデザインに掲示板を作れるのですか?

370:Name_Not_Found
07/06/26 01:37:51
はい?

371:Name_Not_Found
07/06/26 06:46:05 /5OlroJP
>>367
"要求された id の element を探したけど見つからなかったぜ ゴルァ"
と言ってるのだと意訳しましょう.
getElementById() method では ありがちなエラーなのだ.

372:Name_Not_Found
07/06/26 07:30:19
>>369
>javascriptでwebの掲示板作りって可能なんですよね?
ダウト

373:Name_Not_Found
07/06/26 07:42:36
>>371
newDoc も document.getElementById('newDoc') みたいに getElementById で取得する実装になっているなら
まさに "要求された id の element を探したけど見つからなかったぜ ゴルァ" だが、
>367 の URL を見る限り、newDoc は document.createDocumentFragment() で生成されるようだから、見当違いだな。

>>367
URLリンク(q.hatena.ne.jp)  ここにある

> var TargetDiv = document.getElementById("Unique2");
> var newDoc;
> newDoc = document.createDocumentFragment();
> newDoc.appendChild(TargetDiv.cloneNode(true));
> alert(newDoc.getElementById("NotUnique").innerHTML);
> newDoc = null;

これを実行したものと仮定するが、ここで newDoc には DocumentFragment が入っている。
名前が紛らわしいが DocumentFragment は Document インタフェースを継承しないので
Document#getElementById メソッドは持っていない。だからエラーが出る。

直接は関係無いが、この URL に書いてあるような
同じ ID が何度も出てくる XML 文書を使うのはやめたほうがいい。理由は面倒なので書かない。

374:Name_Not_Found
07/06/26 08:01:49
>>371
元質問を良く見ろ。大嘘な解説偉そうにしてんじゃないよ半可通。

375:Name_Not_Found
07/06/26 08:05:26
>>369
javascriptではサーバ内に何か保存することは原理的に不可能。
だからアンタのブラウザ上だけで動作し、アンタ一人が書き込む
という掲示板しか作れないがそれでいいなら見た目は2ちゃんに
似せることもできるだろう。終了。

376:Name_Not_Found
07/06/26 09:42:27
対応するCGIプログラムをサーバ側に置けばかなり使いやすい物が出来るでしょう。
当然全員JavaScript有効が前提条件になるけど。

しかし2ch型2ch型と、いったいこれのどこが使いやすいのかね。
最低最悪のデザインと低スキル丸出しなバグの山と下痢便のようなファイル構成。
まだblogを掲示板代わりに使った方が便利だと思う。

377:Name_Not_Found
07/06/26 09:55:14
そうだね、お家帰ろうね

378:Name_Not_Found
07/06/26 11:29:06
おじいちゃん、こんなとこにいたんですね。
お薬の時間ですよ。さ、行きましょう。

379:Name_Not_Found
07/06/26 11:50:23 3JjgAU5G
質問です。
toSourceメソッドってIEでも動きますか。異環境なのでチップスお願いします。

380:Name_Not_Found
07/06/26 12:11:50 IQXeVWkY
みなさん返事ありがとうございます。では2ちゃんねるの管理人
ひろゆき氏はどのwebプログラミング言語でこの掲示板を作った
のですか?質問ばかりで申し訳ございません。

381:Name_Not_Found
07/06/26 12:43:05
perlじゃね?
ちなみに2chのクローンなんてのは沢山有るから、今更作っても全然需要無いよ

382:Name_Not_Found
07/06/26 12:43:48
最初はPerlだったかな

383:Name_Not_Found
07/06/26 13:05:11
>>379
IEでは動きません。終了。

384:379
07/06/26 17:05:27 o0Xsq1qy
>>383
ありがとうございます。やっぱ動きませんか。
実装予定はいつごろですかね?
ついでにsetAttributeとaddEventListnerもお願い
します。

385:Name_Not_Found
07/06/26 17:58:36
誰にいってんの?

386:379
07/06/26 18:59:42
>>385
あ、すいませんでした言葉足らずで。
ビルゲイツがいたもんですから。


387:Name_Not_Found
07/06/26 21:32:23
そのバスに乗ってた人はもうみんな死んだんですけど。

388:367
07/06/26 22:26:15
>>368>>371>>373
ありがとうございます

URLリンク(q.hatena.ne.jp)
ここに書いてあることは嘘だったんですね・・・
>値取得できました!
>ありがとうございました。
って書いてあるのに・・・


389:Name_Not_Found
07/06/27 02:25:14 lkiXFTix
*script内の処理
function erase()
{
document.test.file_name.value = "";
}
*body内の処理
<form name="test">
<input type="file" name="file_name">
<input type="button" value="削除" onClick="erase()">
</form>

input type="file"で入力したファイル名を、ボタンを押すことによって
テキストエリアから削除ができるようにしたいんですけど、削除できなくて困っております。
input type="text"時は上記のやり方で削除出来たんですけど…
どなたか方法を教えて下さい。お願いいたします。

390:Name_Not_Found
07/06/27 02:27:04
name使わないで><

391:Name_Not_Found
07/06/27 02:33:31
document.test.file_name

document.forms['test'].elements['file_name']
だよな?

392:Name_Not_Found
07/06/27 02:44:21 lkiXFTix
レスありがとうございます。しかしまだ解決dきていません。無知で申し訳ありません。

>>390
name使ったらダメなんですか?
>>391
document.forms['test'].elements['file_name'] = "";
で出来るわけじゃないんですよね?

393:Name_Not_Found
07/06/27 02:49:15
>>392
いやそれは知らん。
まあ.valueが抜けてるけど関係ないだろう。
ググったら直ぐに出ると思うけどなあ

394:Name_Not_Found
07/06/27 06:23:21
>>393 小島善雄でつか?

395:Name_Not_Found
07/06/27 08:39:16
>>389-393
なんで皆こんなに無知なの? <input type="file">のvalue
はscriptからは*絶対に*書き換えられない。書き換えられたら
パスの分かっている重要なファイルとか取られ放題になるだろ。

空にするだけなら、その<input type="file">を独立した
formの中に入れてそのformをreset()することでできるが、
formが分かれるとまずいということだと難しいよね。

396:Name_Not_Found
07/06/27 08:43:41
>>388
documentFragmentに対してdocument.getElementById()が使える
という「標準外の機能を持った」ブラウザがその時使われて
いたとかじゃないですかね。だからその書き込みは嘘じゃない
けどあなたには役に立たないとか。

397:Name_Not_Found
07/06/27 08:50:29
上のやり取りを見て質問です。
フォーム部品を指定するとき、どの書式が望ましいですか?

1 document.test.id.value
2 document.forms['test'].elements['id'].value
3 document.getElementById('id').value

3>2>1?

398:Name_Not_Found
07/06/27 08:52:02
>>395
嬉しそうだなぁ。。
質問者がいきなり自演して自分にウソを教えればこのバカバカしい習性を利用できる。

399:Name_Not_Found
07/06/27 08:55:20
>>397
は?
1に決まってるだろ(呆)

400:Name_Not_Found
07/06/27 08:57:46
>>367
l の後ろの e が抜けている、つまり getElmentById じゃなくて getElementById
ということではないだろうか。
368 も同じことを言っているように見えるが。

401:Name_Not_Found
07/06/27 08:58:51
>>398
なるほどね、注意します ^_^; でもtype="file"の質問は
よく出るからFAQに入れてもいいかも。
>>397
1はIE専。その代替として
document.forms.test.elements.id.value
を勧めますが2でも3でも1よりマシでしょ。

402:Name_Not_Found
07/06/27 09:10:06
ダウト>javascriptではサーバ内に何か保存することは原理的に不可能

不可能なのはクライアントPCのファイルを操作すること

403:Name_Not_Found
07/06/27 09:13:27
>>402
だからさ、CGIとかと連携すればできるけど、そうじゃなかったら
ブラウザ上のJavaScriptでサーバ上の操作はできないでしょ。
CGIとの連携の話?それともサーバ上のJavaScriptの操作の話をしているわけ?
クライアントPCのファイル操作だってActiveXとかWSHとか言い出したら
話が別なわけで、前提をはっきりさせようよ。

404:Name_Not_Found
07/06/27 09:26:30
>>402
>ダウト
>ダウト
>ダウト

405:Name_Not_Found
07/06/27 09:53:10
>>401
1はIE専ってわけじゃないだろ
他ブラウザでも動くことは動く

406:Name_Not_Found
07/06/27 10:07:34
>>402
jsで鯖のファイルが弄れたら、やりたい放題無法地帯じゃねーかw
何その夢の技術ww

407:Name_Not_Found
07/06/27 20:13:29
ばかばっか

408:Name_Not_Found
07/06/27 20:21:39
オマエモナー

409:Name_Not_Found
07/06/28 03:40:09
質問させてください。

同ページ内に複数の<a>があるとして、
現在focusされている<a>が
document.getElementsByTagName('a')の配列の何番目なのか
取得する事って出来ないでしょうか。

よろしくお願いします。

410:Name_Not_Found
07/06/28 04:49:32
>>409
a element で focus と言う表現はおかしいと思わないか ?
それと getElementsByTagName('a') で得られるものは
"配列" ではなく, a element collection.
よろしくお願いされても答えようがない.

411:Name_Not_Found
07/06/28 07:01:19
>>409
forcus event で取得した、event 発火 element と、getElementsByTagName で取得した nodeList(配列)の要素を逐次比較。

めんどくさいな。

412:Name_Not_Found
07/06/28 07:18:08
何故 <a>で? って疑問があるが、
<input>でもフォーカスされているかどうか調べること出来たっけ?
あったらそれで、無けりゃイベントに何か仕込んで、
for (n in anchorElements)
でループしたらn番目って判断できそうだけど。

>>410
言いたいことはわかるが、>>409でも十分通じるんじゃね。

413:Name_Not_Found
07/06/28 07:38:08
>>412
煽り口調になってしまったけど,
"リンクの何番目" と言うことに重要性があるとは思えない.
もしかすると onmouseover で逆引きをやりたいのかも知れない.
"どうしても" というのなら index 用の array を用意して
onload で Index[A[i]]=i; (A: a element collection) てな感じで

414:Name_Not_Found
07/06/28 07:50:55
ついでだけど,
for(i in A) 形式は
A が element collection の場合は使えない.
それに対して A が array ならば OK.

415:Name_Not_Found
07/06/28 07:57:37
prototype.js使ってたら使えないけどね

416:Name_Not_Found
07/06/28 08:22:03
>>414
for(i in getElementsByTagName('TAG'))
でも動いてるんですけど...?
ダメなの?

417:Name_Not_Found
07/06/28 08:46:13
>>409
XPathを使えるなら『現在focusされている<a>』のpreceding::Aの個数を求めるのがおそらく最速。

>>414
element collectionなる造語はどこからでてきた。

for..inはDontEnum属性を持たないプロパティを列挙する。
ECMAScript実装上のNodeList[n]、HTMLCollection[n]が列挙不可かどうかはホスト依存。
少なくともGeckoは可能。Opera、Safariは不可。

まぁ配列を回すときはfor..inではなくindexを数えろというなら同意しなくもないが、
JavaScriptのArrayはindexが飛ぶこともある。
NodeListはindexが飛ぶことはないが生きている。

418:Name_Not_Found
07/06/28 09:20:28
また変なのが居着きそうだな

419:Name_Not_Found
07/06/28 16:54:34
>JavaScriptのArrayはindexが飛ぶこともある
ソースがわからんのだが

420:Name_Not_Found
07/06/28 17:38:49
>>419
ソースって情報元?ならECMA。

プログラムコードが見たいなら以下でどうぞ

var a = [];
a[1181542658] = "hello";
// コメント外したらブラクラ for(var i = 0; i < a.length; i++) { alert(a[i]); }
for(var i in a) { alert(a[i]); }

421:Name_Not_Found
07/06/28 18:16:17 meL89RVE
特定のブラウザでのみHTMLの一部を改変して表示させたいのですが、具体的にどういった方法でできるのでしょうか?

422:Name_Not_Found
07/06/28 18:22:03
改変するのと表示するのでは全く別のこと

423:Name_Not_Found
07/06/28 18:37:04
>>420
配列の中の定義された値だけを走査する、という状況なら index が飛ぶこともあるだろうが
配列を走査する、という状況なら 0 .. a.length - 1 まで全ての添え字で処理されるべき。
その点後者は、undefined も含めた全ての値にアクセスするわけではないので処理が“飛んでいる”と言えるな。
そもそもそういう使い方なら Array でする意味はないってことはわかって書いてるんだろ?

424:Name_Not_Found
07/06/28 18:39:20
>>421
1.サーバ側でブラウザ別に違うソースを書き出す
2.クライアント側でブラウザ別に違うソースを読み込む
のどっちかだね
このスレ的には2だから、あじゃあじゃ

425:Name_Not_Found
07/06/28 21:41:07
framesすべてに何かしたい時は
for(i in frames)でおk?
なんで試してみないのかというと、これでを使って
何かをしようというわけでもないから

426:Name_Not_Found
07/06/28 21:47:39
はい、次のかたどうぞ~

427:Name_Not_Found
07/06/28 23:09:03
>>425
だからそういうのは「保証されない」ってば。たまたま
手元のブラウザで動いたからそれでいいとか思わない方が
いいよ。保証されてない動作は他のブラウザやそのブラウザの
次のバージョンでどうなるか分からないんだから。

428:Name_Not_Found
07/06/28 23:15:44
>>427
>>425でいいじゃねーか。
他にどんな書き方があるんだよ?

429:Name_Not_Found
07/06/28 23:19:12 QOlzUv6n
質問です。
Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい
ますか?

430:Name_Not_Found
07/06/28 23:36:06
ま、Array#forEachを使っとけってこった。

431:Name_Not_Found
07/06/28 23:43:29
フォームに
00_00 などの文字列を貼って、submitしたら
00_00
01_01
02_02
03_03
04_04
05_05
06_06
07_07
08_08
09_09
10_10

10_0a と貼ったら
11_0b
12_0c
13_0d
14_0e
と展開してくれるスクリプトを書きたいのですが、どうやればいいでしょうか?









432:Name_Not_Found
07/06/28 23:54:18 IUjf0PIi
質問です。

二つのセレクトメニューで、現在の日付を初期値(phpで制御)として設定しています。

セレクトメニュー1  セレクトメニュー2
【2007年6月】 【28日】
2007年7月
2007年8月
  ・
  ・
それでセレクトメニュー1の値によってセレクトメニュー2の項目を
メニュー1が1月ならメニュー2に1~31日、2月なら1~28日といった感じに
変更したいのですが、メニュー1の値をどう指定すればいいかわかりません。

ご教授お願いします。

433:Name_Not_Found
07/06/29 00:01:30
ここでは教授はしない。

434:Name_Not_Found
07/06/29 00:21:54
>>431
まずその展開ルールを公開してくれ

435:Name_Not_Found
07/06/29 00:48:32
>>434
rubyのString#succやInteger#succで作ってやれば納得するだろ、おそらく。

>>432
本当に微妙な差だが、表形式のカレンダーを出力するのは、PHPの方が易しい。
だから、誰から見ても使いにくいというか使えない分割された糞セレクトコントロールじゃなくて、カレンダーを出力してもらえ。
どうせ、別の月へのリクエストはほとんど使われないんだから、わざわざJSに分散させる必要は全く無い。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch