+ JavaScript の質問用スレッド vol.57 +at HP
+ JavaScript の質問用スレッド vol.57 + - 暇つぶし2ch167: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に分散させる必要は全く無い。

436:Name_Not_Found
07/06/29 08:43:09
>>435
カレンダーにするかどうかは製作者の設計によるよね。画面の当該
領域が小さいものならカレンダーじゃなくselectというのは普通に
あるでしょ。
>>432
PHP側で「1番目のselectの何番目なら日付は何日まで」という情報を
適当な配列に生成しておいてもらい、それを参照するのが楽かと。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var days = [30, 31, 31];
function chg() {
var ind = document.forms.f0.elements.s0.selectedIndex;
var sel = document.forms.f0.elements.s1;
sel.options.length = 0;
for(var i = 0; i < days[ind]; ++i) {
sel.options[i] = new Option(String(i+1));
}
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><div>
<select name="s0" onchange="chg()"><option>2007.6</option>
<option>2007.7</option><option>2007.8</option></select>
<select name="s1"><option>X</option></select>
</div></form></body></html>

437:Name_Not_Found
07/06/29 08:46:50
>>430 だからframesはArrayじゃないんですけど。
>>428 for(var i = 0; i < frames.length; ++i) ... が無難。

438:Name_Not_Found
07/06/29 10:41:49
>>431
同好の士みたいだし、オレのスクリプト分けてやるよ

439:432
07/06/29 10:55:16
>>435>>436
丁寧な回答本当にありがとうございます!
おかげさまでうまくできました。

あともう一つ聞きたいのですが、javascriptでの変数や関数をphpで使用すること
は可能ですか?
var ind = document.forms.f0.elements.s0.selectedIndex;
で取得した値をphpに渡す等

普通に代入しようとしたらエラーになってしまったんですが・・・

440:Name_Not_Found
07/06/29 11:24:31
>>439
JavaScriptはブラウザ上で動作し、PHPはサーバ上で動作してる
でしょ。だから普通に代入なんてできるわけがない。渡したければ
formの適当な要素(hiddenとか)の値としてセットしてそのformを
送信するとかでしょ。

441:Name_Not_Found
07/06/29 11:41:06
>>439
そんなときこそAJAXですよ。
まあ、渡せるのはデータであって、変数や関数じゃありませんが。

442:Name_Not_Found
07/06/29 14:31:24
>>437
Array.forEach(frames, function(f){ ... })
Array.prototype.forEach.call(frames, function(f){ ... })

MDCにあるArray#forEachの代替コードは
for (var i = 0; i < len; i++) { if (i in this) ...
添字の抜けも考慮してある

443:Name_Not_Found
07/06/29 14:48:53 LDupVtZA
質問です。
Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい
ますか?


444:Name_Not_Found
07/06/29 15:25:17
>>443
どんな文字列なら解析してくれるのかよく分からないんだよね。
だから実用に使うページの場合は自分で正規表現とかで解析するよな。
でないと「どういう文字列を与えればいいのか」と言われた時に答えられない。


445:443
07/06/29 15:53:05
>>444
やはりそうですか。自分できっちり設定します。
ありがとうございました。

446:Name_Not_Found
07/06/29 19:15:33 vOAzjufZ
質問させてください。
JavaScriptを利用して、一つのウィンドウを使い、内容を表示して確認、次の内容を表示して確認というようにしたいと思い、つぎようなコードを作ってみました。
実行すると、一つ目と二つ目の画面は表示できますが、二つ目の画面のボタンは動作しません。何がまずいのでしょうか?

<html><head><meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<script type="text/javascript">
function q1() { document.open();
document.write("1.ABCD");
document.write("<form><input type='button' value='2へ進む' onclick=q2();></form>");
document.close(); }
function q2() { document.open();
document.write("2.EFGH");
document.write("<form><input type='button' value='1へ戻る' onclick=window.q1();> ");
document.write("<input type='button' value='3へ進む' onclick=q3();></form>");
document.close(); }
function q3() { document.open();
document.write("3.IJKL");
document.write("<form><input type='button' value='1へ戻る' onclick=q1(); >");
document.write("<input type='button' value='2へ戻る' onclick=q2();></form>");
document.close(); }
// -->
</script><title></title></head>
<body>
<p><script type="text/javascript"><!-- q1(); // --></script></p>
</body>
</html>

447:Name_Not_Found
07/06/29 19:35:28
なにがまずいって?
// --> んなものつけてるからだろ

448:Name_Not_Found
07/06/29 19:44:36
>>446-447
どっちかというと <!-- がまずいんでしょ。そんなもん
書かないのが吉だと思うね。ところで FAQ>>3 のQ4-A4は
読んだかね?

449:Name_Not_Found
07/06/29 20:07:29 vOAzjufZ
<!--
// -->
は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策

>448

やはり、あの方法のどれかを使うしかないようですね。

450:Name_Not_Found
07/06/29 20:48:45
>>449
> !--
> // -->
> は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策

一体、何年前から来た人ですか?

451:Name_Not_Found
07/06/29 21:04:32
異次元だね

452:Name_Not_Found
07/06/29 21:24:37
もし仮にだな、閲覧したヤシのパソコンの画面いっぱいに

コードが大解放されたとして、別にそれでいいよ。



453:Name_Not_Found
07/06/29 21:26:02
そんなのを書いとくともっと深刻な事態になるんだから。

454:Name_Not_Found
07/06/29 21:35:37
>>449
HTML4.0が勧告されてから、そろそろ10年。
今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。
対応ブラウザのJavaScriptをOFFにしたってscript内を表示したりはしないし、
対応していないLynxなんかも勿論、表示しない。
だいたい、それだけスクリプトに依存したページを作っておいて対策もなにも無いでしょう。

それと普通は<!--で始まってる行は無視されるから、そのコードが動くとは思えないんだけど。

455:Name_Not_Found
07/06/29 21:42:58
>今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。
えーと、今時の携帯でもふつうに垂れ流すけど。
そして、今では携帯コンテンツのプログラムが俺の仕事の半分を余裕で超えたよ。
スクリプトをコメントアウトせずにじかに出力するとかありえないからw

456:Name_Not_Found
07/06/29 21:43:58
>>452
だから、あなたは何年前から来た人ですか?

457:Name_Not_Found
07/06/29 21:45:05
>>455
え?
最近の携帯ってJSに対応してるの?
JS使ってるって事は対応してる機種があるって事だよね?

458:Name_Not_Found
07/06/29 21:54:51
JavaScriptの話題じゃないぜ。

459:Name_Not_Found
07/06/29 21:57:58
JapanSe・だろ

460:Name_Not_Found
07/06/29 22:00:32
>>458
じゃぁCSS?

461:Name_Not_Found
07/06/29 22:11:54
>>455
ごめんね。携帯のはHTMLブラウザだと思ってないから勘定に入れてなかった。
特にi-modeとか独自路線過ぎる。
でも、なんで携帯コンテンツにscriptを?

462:Name_Not_Found
07/06/29 22:26:06
そりゃ携帯サイトにJavaScript入れるならコメントアウト
するかも知れないけどね… 入れないよなふつー。

463:Name_Not_Found
07/06/29 22:41:05
嘘だよ
垂れ流す携帯の機種言ってみろよ

464:Name_Not_Found
07/06/29 23:22:13
>>448
<!-- から行末までが無視され、// から行末までが無視されるから、
単に <!-- と //--> は別の行に書けば済むだけ。書かない方が吉ってことはない。
書き方が悪いのが問題なだけだ。

465:Name_Not_Found
07/06/29 23:56:44
XHTMLでは書いちゃだめですよ。スレ違いながら。

466:Name_Not_Found
07/06/30 00:13:40
どう見てもXHTMLじゃないし

467:Name_Not_Found
07/06/30 01:04:35
だからトラブるでしょ。現に。書いたっていいことない。まあ
どーしても書きたいというのなら止める権利はないよなー。

468:Name_Not_Found
07/06/30 01:35:01
書いちゃだめというなら
何故だめなのか理由を説明してあげたら?
そのほうが為になるよ

469:Name_Not_Found
07/06/30 01:43:51
そんなことよりソース垂れ流す携帯の機種が気になって眠れない

470:Name_Not_Found
07/06/30 07:19:12
各キャリアに問い合わせれば?

471:Name_Not_Found
07/06/30 07:32:45
ばーかばーか

472:Name_Not_Found
07/06/30 08:25:23
オマエモナー

473:Name_Not_Found
07/06/30 08:31:22 fnkN5MWo
JavaScriptで所定のノードの中にある派生ノードの数を数えるにはどのようなコードを書けば良いのでしょうか?

474:Name_Not_Found
07/06/30 08:31:52
HTMLなら書く。
XHTMLなら書かない(っつーか、外部に出す)。
これでいいだろ。
何で一緒にしちゃうんだか

475:Name_Not_Found
07/06/30 08:33:04 fnkN5MWo
今現在、

function countNodes(){

count=0;

for (n=n.firstChild; n!=null; n=n.nextSibling){
count++;
}
}

と書いているのですが、うまく動作しません…

476:Name_Not_Found
07/06/30 08:53:44
うまく動作しないってどういうこと?
まあ、そのコードは単に n.childNodes.length でいいと思うけど

477:Name_Not_Found
07/06/30 08:57:06 fnkN5MWo
>>476
function countNodes(){

count = 0;

for (i=0; i<this.childNodes.length; i++){

count++;

}

こういう事でしょうか?

478:Name_Not_Found
07/06/30 08:58:35
>>468
いや別に駄目なんて言ってないよ。でも現にそれ書いた
ために動かないというのが今回の質問者のトラブルなんでしょ。
過去スレでも同様のトラブルは何回も出ている。それでも書きたい
なら本人の勝手ということでは。

479:Name_Not_Found
07/06/30 09:07:16
いや、こういうこと。ループにするとか、複雑にする必要はない。
function countNodes(){
count = n.childNodes.length;
}

480:Name_Not_Found
07/06/30 09:09:02
>>477
「派生」という言葉をどういう意味で使っているのかが
分からないんで説明してみて。あるノードの内側にある要素の
数ということなら次のような感じだと思うけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function count(node) {
var c = 1;
for(var i = 0; i < node.childNodes.length; ++i) {
var n = node.childNodes[i];
if(n.nodeType == 1) c += count(n);
}
return c;
}
</script>
</head><body onload="alert(count(document.getElementById('d0')))">
<div id="d0"><p>xxx<span>yyy</span>zzz</p><div>aaa</div></div>
</body></html>

481:Name_Not_Found
07/06/30 09:19:37
>>480
おいw
1から始めるから1個多くカウントされてるぞ。

こんなバグを混入させないためにもなるべく簡単に書くのがいい。
この>>480の場合でも一行で終わる。
node.getElementsByTagName('*').length


482:Name_Not_Found
07/06/30 09:23:19
>>481
あ~、「あるノードの内側」を「あるノード以下」に読み直して
ください ^_^;; だって1にしないと内側をカウントする役に
立たないでしょ。しかし getElementsByTagName('*') ですか、
勉強になりますた。

483:Name_Not_Found
07/06/30 12:24:21
また偉そうなバカだな。

484:Name_Not_Found
07/06/30 14:09:26
>>481
それ、見当違いだと思うけど。

<div>なんとか<span>かんとか</span></div>

divの子孫ノードは何個有る?

485:Name_Not_Found
07/06/30 16:13:54
>>484
484のdivの子孫ノードの数は通常は3つ。
480は「あるノードの内側にある要素の数」であって、
「子孫ノードの数」ではないのだけれど、それを分かって質問しているんだよね?

486:Name_Not_Found
07/06/30 16:25:20
子孫ノードを数えるように直してみた。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function count(node) {
var c = 0;
for(var i = 0; i < node.childNodes.length; ++i) {
var n = node.childNodes[i];
if(n.nodeType == 1) c += count(n) + 1; else c += 1;
}
return c;
}
</script>
</head><body onload="alert(count(document.getElementById('d0')))">
<div id="d0">なんとか<span>かんとか</span></div>
</body></html>

487:Name_Not_Found
07/06/30 16:43:04
再帰処理キャ━(゚∀゚)━!!

488:Name_Not_Found
07/06/30 17:01:08
>>485
元質問読めば?

489:Name_Not_Found
07/06/30 17:11:43
>>488
481の元は480だろ。475のことを言ってるのなら476で終わってる。
それが違うのなら言ってきてもよさそうだが477以降出てきていないみたいだしな。
結局476、480の言うようにちゃんと要求を言ってもらわないと
475のしたかったことなんて分からないだろ。

490:Name_Not_Found
07/06/30 17:20:40
innerHTMLのタグの数数えたりして。


491:Name_Not_Found
07/06/30 17:31:55
うーん、なんか>>486じゃまずい気が… attributeなんかも数えて
しまうよな…それともそれもノードということでいいのかな…


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