08/06/12 14:58:46
>>251
これでどうだ!
var str = '3.0.1.2.3'
parseFloat(str.replace(/([0-9]*)\.(.*)/,'$1_$2').replace(/\./g,'').replace('_','.')
誰かもっとうまいやり方を教えてください。
253:Name_Not_Found
08/06/12 15:07:39
>>252
なるほど!一度他の文字に置き換えて置くのですね。
とても参考になりました。どうもありがとうございます。
254:Name_Not_Found
08/06/12 15:13:39
ajax(jquery)とGoogleMapでの質問もこちらでよいでしょうか?
255:Name_Not_Found
08/06/12 15:28:15
>>252
置き換えはさすがにどうかと思うなあ。
うまいかどうか知らんが
alert( '3.0.1.2.3'.replace(/^(.*?\.)|\.(?=\d+)/g,"$1") );
256:Name_Not_Found
08/06/12 15:35:53
>>251
var c = 0;
var x = parseFloat(str.replace(/./g, function(){return (++c>1)?'':'.';}));
なんてどうかね。
257:251
08/06/12 15:41:09 8qjKDFLu
皆さん本当にどうもありがとうございます。
正規表現のレベルが高すぎて正直自分には理解できませんが、
>>255さんのがシンプルそうなのでそれを使わせていただきたいと思います。
258:Name_Not_Found
08/06/12 22:46:33
>>254
もう Google Maps は手軽に AS化できるだろ。これを機会にウェブでJSを使うのを止めてはいかがかな。終わってるから。残ったのはフラッシュだった。
259:Name_Not_Found
08/06/13 04:00:40
またフラッシュバカか。何で粘着してるんだか。未練たらたらなのか
260:Name_Not_Found
08/06/13 08:01:38
諸君、私は ECMAScript が好きだ
JavaScript が好きだ
ActionScript が好きだ
JScript が好きだ
ExtendScript が好きだ
QtScript が好きだ
Spidermonkey で
Tamarin で
Ajajaで
JavaScriptCore で
Rhino で
この地上に存在するありとあらゆる ECMAScript が大好きだ
綿密に繋ぎ合わされたプロトタイプチェーンが好きだ
プロトタイプが書き換えられ、オブジェクトが拡張される様など心がおどる
複雑に入り組んだ関数スコープが好きだ
関数が呼び出され、 Activation オブジェクトが鎖のように繋がり、樹木のように広がっていく様など胸がすくような気持ちだった
with ステートメントが好きだ
幾重にも繋がれたプロトタイプチェーンが、スコープチェーンに追加される様など感動すらおぼえる
with したオブジェクトのプロトタイプの関数が書き換えられた時などもうたまらない
スコープにプロパティを追加し、変数をすり替えるのは最高だ
複雑そうなオブジェクトを JSON で書き下した時など絶頂すら覚える
諸君 私は ECMAScript を 烈火の様な ECMAScript を望んでいる
諸君 私に付き従う ECMAScript 好きの諸君 君たちは一体何を望んでいる?
更なる ECMAScript を望むか
糞の様な ECMAScript を望むか?
プロトタイプの限りを尽くし クラス世界のプレーンを殺す 嵐のような ECMAScript を望むか?
ECMAScript !! ECMAScript !! ECMAScript !!
261:Name_Not_Found
08/06/13 08:40:31
>>247
なんかいろいろ厄介そうっすね。
実はコナミコマンドを打つbookmarkletが作れないかと思ったんだけど、やめときます。
もしできるなら誰かお任せ。
262:Name_Not_Found
08/06/13 09:25:09
>>261
それだけでいいなら
[1, 1, 3, 3, 0, 2, 0, 2, 29, 28].forEach(function(v){ nullpo(v + 37) })
263:Name_Not_Found
08/06/13 09:40:46
>>260
スレチですけどこちらも支援してくださいな。
サーバーサイドJavaScript総合
スレリンク(php板)
264:Name_Not_Found
08/06/13 14:58:46 CJ0ctsvH
質問です。
任意の個数の引数をとる関数に対して、
func(arg1, arg2, arg3);
と同様の結果を期待して
arg = [arg1, arg2, arg3];
func(arg);
としたらfunc側で引数1個と判断されて失敗しました。
argの要素数が可変として、配列argで
func(arg[0], arg[1], .. ,arg[arg.length-])
のようなことはできますか?
265:Name_Not_Found
08/06/13 15:11:07
URLリンク(d.hatena.ne.jp)
266:Name_Not_Found
08/06/13 15:11:51
>>264
callとかapplyとかについて勉強するといいよ。
267:264
08/06/13 15:53:34
>>266
func.apply(this, arg);
でできました。ありがとうございます。
268:Name_Not_Found
08/06/13 16:00:55
javaスクリプトでパケットをループさせて送信
って可能ですか?
269:Name_Not_Found
08/06/13 16:49:48
>>268
ブラウザ上のJavaScriptではできません。
270:Name_Not_Found
08/06/13 17:02:32
画像をクリックして違う画像を表示するというものなのですが、
<SCRIPT language="JavaScript">
<!--
imgnum=1;
function changeImage(){
if(imgnum==1){
document.myimg.src="gazo/kabe2.gif";
imgnum=2;
}else if(imgnum==2){
document.myimg.src="gazo/kabe3.gif";
imgnum=1;
}
}
// -->
</SCRIPT>
<CENTER>
<A href="javascript:changeImage()"><IMG src="gazo/kabe1.gif" name="myimg" border=0></A>
</CENTER>
某サイトにありまして、この通りにしたらうまく行ったのですが、これを同じページに
2つ以上いれると画像がクリックしても変わらなくなってしまします。
どこを変えればよいでしょうか?
271:Name_Not_Found
08/06/13 17:24:38
>>270
changeImage()という関数を2つ定義したら多重定義に
なるだろ。統一的に名前を変更するとかしたらどうかな。
まあがんばって。
272:Name_Not_Found
08/06/13 17:58:42
>>271
すばやい解説ありがとうございます。
changeImage()を別の名前にしたらいいんですね。早速取り掛かってみます。
273:Name_Not_Found
08/06/13 17:59:05
>>270
どのサイトを参考にしたのかわからないけど、情報古すぎるよ
少なくとも>>1ら辺にあるテンプレを探していけばサンプルはないにしても
もっと有力な情報得られるはず。
function changeImage(elem) {
// imgタグのsrcの数字部分を置換
elem.src = elem.src.replace(/([0-9])/, function(num){
// その数字部分に1足したものを3で割った余りを出す
return (parseInt(num) + 1) % 3; // 0 or 1 or 2
});
}
<img src="gazo/kabe0.gif" onclick="changeImage(this);">
こんな感じで変えれば無駄な変数とかもいらないかな。
aタグはなくして、画像をクリックしたらchangeImageに自分自身を渡す。
なので、他のimgタグがあっても平気。
画像の番号は便宜上0,1,2にした。
3で割った余りを画像の番号にしたため。
ということでがんばって。
274:Name_Not_Found
08/06/13 18:05:27
>>273
アドバイスありがとうございます。さきほど2個といいましたが、
実は50個くらいあるのですが、大丈夫でしょうか?
275:Name_Not_Found
08/06/13 18:16:54
>>273
ど素人なので、へんなこと言ってたらすみません。
それだと、3つの画像を繰り返すことになりますよね。2つの画像を繰り返したいの
ですが。
それと、クリックしたら替わる画像を50個くらい設置したいのですが、その
数字は大丈夫でしょうか?
276:Name_Not_Found
08/06/13 18:53:45
>>273を見て応用できないならあきらめた方が早いよ。
277:Name_Not_Found
08/06/13 19:52:14 FUCwHHFV
質問させていただきます。
Aという領域をクリックしたときにBの領域で
複数の画像を使って(パラパラアニメのような)アニメーションをさせる。
ここまでは出来たのですが、
「クリックした時だけそのアニメーションを表示させる。」
「クリックするたびに何回でも表示する。」
っていうもののやり方がどうしても解りません・・
278:Name_Not_Found
08/06/13 20:08:22
アニメーションが一回だけ回る関数を
クリック時に呼び出せばいいんじゃないの。
setIntervalでやってるなら、
その中にcount++なんかを入れといて、
if (count == 画像枚数)のときにclearIntervalする。
279:Name_Not_Found
08/06/13 21:41:15
ん。
280:Name_Not_Found
08/06/13 23:33:47
(; ^ω^)
281:Name_Not_Found
08/06/14 02:57:34
onload 後に innerHTMLで、 iframe を 追加しているんですが、
追加した iframe が うまく表示されないときがあります。
IEDevelopper Tool で 値を見ても src に 正しく 設定されています。
282:Name_Not_Found
08/06/14 03:42:04
うむ、さよか
283:Name_Not_Found
08/06/14 08:53:07
>>281
なんで「srcに正しく設定」が問題になるの?怪しいね…
もしかしてinnerHTMLに入れてiframeを作った後で
window.frames.フレーム名.src に設定している?それは
タイミング的に危ういよね。innerHTMLに入れるiframe
タグにsrc属性を書いておくのがいいと思う。
284:281
08/06/14 13:30:54
>>283
iframe タグに src を入れています。
以下のように 文字列を追加しています。
var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>;
285:Name_Not_Found
08/06/14 14:12:36
>>284
alert(strDocument); を実行してその結果を貼ってみれ。
286:Name_Not_Found
08/06/14 16:09:21
>>284
var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>";
ダブルクオートが抜けてた。
その場で試せるFirebugを導入することをお勧めする
287:281
08/06/14 16:30:57
>>285
alert を表示しました。
<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' id="hoge" src='ローカルファイル'></iframe>
288:Name_Not_Found
08/06/14 17:00:55
うーんそれでよさそうだよね。ローカルファイルをフレームに
表示させるのはうまくいかないことがあるかも知れないけど。
同じソース、同じURLのままでうまく行ったり行かなかったりする?
289:281
08/06/14 17:06:12
>>うーんそれでよさそうだよね。ローカルファイルをフレームに
>>表示させるのはうまくいかないことがあるかも知れないけど。
うまくいかないことがあるんですか?
それはどういう理由からでしょうか?
290:Name_Not_Found
08/06/14 18:06:35
ローカルファイルの場合、鯖がないから鯖が必要なもの(CGIとか)
が含まれていると駄目とかね。常に統一的に「こういうページが駄目」
とか分かっていたらそれを書いて相談した方がいいね。もっとも
駄目なものは駄目という他ないとは思うけど。
291:Name_Not_Found
08/06/14 19:59:12
今気づいたんだけど道場訓撤去しちゃったんだね。アレよかったのに。
292:Name_Not_Found
08/06/14 20:08:54
魚の話は板からして違うだろ。
293:Name_Not_Found
08/06/15 01:09:17
洩れも愛着あったしどうかなーと思ったけど >>291 まで誰も
何も言わなかったんでまあOKってことなんじゃないかな?
294:Name_Not_Found
08/06/15 05:23:32
>>263
あ、いや
>>260は転載ですのであしからず・・・
295:Name_Not_Found
08/06/15 21:13:53
誰も>>1を読んでいなかったということだな。俺は>>2からしか読まないから全然気付かなかった。
296:Name_Not_Found
08/06/15 22:07:53 O3b3UhIy
WinXPPro+FireFox,IE7でWEBサイトの製作を行っております。(+cgiも使っていますが、今回の件とは直接関係ありません。)
画像アップローダを作ろうと思っておりまして、アップロード前に画像の確認表示が出来るようにしたいと思っています。
<div id="testViewDialog">
<img hspace="0" vspace="0" name="testImage" src="/image/blank_image.png" width="250" height="500" align="left" style="margin:0px; padding:0px;">
画像ファイル<input type="file" accept="image/gif" id="uploadImage" style="position:static;"><br>
<button onClick="testView();">←試し表示</button>
</div>
として、javascriptでtestView()の関数を作ろうと思っております。
ためしに
function testView()
{
document.images["testImage"].src = "file:///G:\WEB\image\test.gif";
}
とやったのですが、表示されません。
どのようにしたら、ローカルファイルが上手く表示できるようになるでしょうか。
なお、製作環境はWinですが、出来る限り幅広い環境でテスト表示を行わせたいと考えております。
よろしく、ご教授ください。お願いいたします。
297:Name_Not_Found
08/06/15 22:26:19
>>296
ネットからロードしたページ中にローカル画像は入れられない。
またテンプレ中のFAQにもあるが、input type="file" から
ファイル名を取れないブラウザもある。よって、あんたがやりたい
ことは不可能だと思うよ。お気の毒だが。
298:Name_Not_Found
08/06/16 06:03:52
>>297
Action Scriptを使えばできる
299:Name_Not_Found
08/06/16 06:55:02
ActionScript で彼女ができました。
300:Name_Not_Found
08/06/16 09:05:13
総会総会。加藤が知ってたらどんなに喜んだことか
301:Name_Not_Found
08/06/16 12:33:59
>>299
マジレスすると、それは実際によくあることだな。まあ、ちょっとキモい女しかいないがw
302:Name_Not_Found
08/06/16 14:29:33
ActionScriptで身長が8cm伸びました
303:Name_Not_Found
08/06/16 15:14:44
全国の会員の皆さまから驚きの効果がぞくぞくと寄せら
れています。 お申し込みは、今すぐお電話で
0120-194403(アクシヨン3)
まで。もちろん2chお友だち価格です。
お便りもお待ちしています。
304:Name_Not_Found
08/06/16 19:54:37 x0L5x+V2
TRタグのセルの内側で背景クリックを可能とするためのjavascriptを探しています。
Googleのアドセンスのスクリプトをコピーしたら動いたんですが、複雑すぎて、
自分のサイトにもってこれません。
どっかにサンプルとかないでしょうか?
「javascript 背景クリック」でググってもアドセンの広告に関するページしか表示されません。
お願いしますだ
305:Name_Not_Found
08/06/16 20:05:20
>>303
電凸してみた
つながらなかった
実在する番号載せるのはやめようぜ
306:Name_Not_Found
08/06/16 20:15:09
javascript内でjavascriptを読み込むにはどう書けばよいのでしょうか
ご教授ください
307:Name_Not_Found
08/06/16 20:17:37
>>304
javascript background click で303,000本が待機しているが
308:Name_Not_Found
08/06/16 20:19:37
>>305
KY
>>306
お、お久で教授か
!=JavaScript
309:Name_Not_Found
08/06/16 20:25:09
>>307の勘違いぶりが……。
310:Name_Not_Found
08/06/16 20:28:53
//e:Event
for (var n = e./*@cc_on @if(1)srcElement@else@*/target/*@end@*/, C = /^T(?:D|H)$/i; n && !C.test(n.tagName); n = n.parentNode);
if (n) {...}
311:Name_Not_Found
08/06/16 21:25:11
>>306
var s = document.createElement("script");
s.src = ファイル名;
document.getElementsByTagName("head")[0].appendChild(s);
こんなんじゃダメ?
312:306
08/06/16 22:20:46
これでできますた
document.write('<script type="text/javascript" src="ふるぱす/ほげ.js"></script>');
313:Name_Not_Found
08/06/16 23:54:05
>>312
それってIE以外だとSCRIPTタグが文書に書き出される(見えないけど)だけで
実際に「ほげ.js」は読み込まれないような気がする。
あと、スクリプト内に書くのなら最後は
</' + 'script>');
と分割しておいた方がいいと思う。
314:Name_Not_Found
08/06/17 00:25:09
世界中の無数のサイトで使われている構文
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
315:313
08/06/17 00:29:26
> 実際に「ほげ.js」は読み込まれないような気がする。
訂正。普通に読み込まれてた。処理のタイミングの問題みたい。
「ほげ.js」の内容が
var str = "hello, world";
で、件の document.write... の次の行が
window.alert(str);
だとすると、IE だとちゃんとアラートが出るけど、Firefox と Opera では出なかった。
window.setTimeout("window.alert(str)", 1000);
と多少遅延させると Firefox と Opera でも無事アラートが出た。
316:313
08/06/17 00:31:56
> あと、スクリプト内に書くのなら最後は
SCRIPTタグ内に書くのなら、ね...。
317:Name_Not_Found
08/06/17 00:58:00
>>313
「</」の方を分割するかしないと
URLリンク(www.asahi-net.or.jp)
318:Name_Not_Found
08/06/17 01:54:10
<select id="list_1"></select>でジョブキューを管理しているのですが、設定出来る値がnew Option("表示される値","裏の値")の二つだけではちょっと足りなくなったので
function job(num){
this.search = "検索中その"+num;
}
function btn_1_c(){//URLを追加ボタンを押した
list_1.options[0] = new Option("表示される値","裏の値");
var hoge = new job(1);list_1.options[0].other=hoge;
var hoge = new job(2);list_1.options[0].other2=hoge;
alert(list_1.options[0].other2.search)//「検索中その2」
}
<select id="list_1"></select>
このようにしてリストボックス一つ一つの項目に大量のデータを持たせたいのですが、これってjavascript的に想定されている事なのですか?
一応動いたのですが、実はxxするとクリアされる とかだとちょっと困るので質問です
319:Name_Not_Found
08/06/17 02:26:30
>>315
> IE だとちゃんとアラートが出る
ほんとに出た?
320:313
08/06/17 03:04:59
>>317
失敬。分割する箇所が不適切でしたね。
>>319
こちらでは出ました。
各バージョンがいちいち古いんですけど、
Internet Explorer6、Firefox 1.5.0.12、Opera 9.26 で試してみました。
IEだけは setTimeout を使わなくても "hello, world" とアラートが出ました。
321:Name_Not_Found
08/06/17 03:30:00
javascript 動的 でググれ
変なやり方教えるな
322:Name_Not_Found
08/06/17 03:52:05
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none"
}
window.onload = dell;
}
idにsmpleがあれば消すということをしたいのですが
これだとうまく消えません
sampleがあるかないかの判定(if分)がなければうまくいきます
ただそれだとsampleがあった場合はいいのですが、ない場合はエラーになります
sampleがあるかないかの判定はこれでいいのでしょうか?
とにかくやりたいことは<p id="sample">ほげ</p>を消すことで
idのない<p>ほげ</p>でもエラーのないようにしたいです
よろしくお願いします。
323:Name_Not_Found
08/06/17 04:06:34
IEは、SRC属性があるSCRIPT要素を適当に選んで、SRC属性値を書き換えるだけで、読んで実行しますよ。
//@cc_on@if(1)document.scripts(document.scripts.length - 1).src = "another.js";@end
みたいにね。
これは、HTML読み込み中・読み込み後に関係なく動作する。
324:Name_Not_Found
08/06/17 04:07:59
>>323
SRC属性が無くても出来たわ。訂正。
325:Name_Not_Found
08/06/17 04:10:21
>>322
<STYLE ...> とか <LINK REL="Stylesheet ..." HREF="..."> とかを動的に作るればいいだろ。
326:Name_Not_Found
08/06/17 05:00:57
>>322
あるかないかの判定はDOMツリー構築後じゃないとできない
しかもそれだとsampleがあってもなくてもIE以外ではエラー出るはず
あとloadイベントはそういう用途にはおすすめできない
なぜ #sample { display: none; } では駄目なのか
327:Name_Not_Found
08/06/17 05:55:28
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none";
} else {
function dell() { };
window.onload = dell;
sampleがないときにエラーがでるのはfunction dell()がないからだと思ったのでelseの場合に定義してみましたが
エラーはでなくなりましたがsampleが消えなくなりました
たとえelseでも同じfunctionは定義できないということでしょうか
function dell() { };これをはずしてsampleがあるときはうまくいきます
>#sample { display: none; }これが使えるならそうしたいのですが使えない状況なのです
>あとloadイベントはそういう用途にはおすすめできない
javascriptはあまり詳しくないのですが
document.getElementById("sample").style.display = "none";
このように書いてもエラーがでるのでしかたなくwindow.onload = dell; このように書いてます
すぐに実行できる書き方はどうすればいいのでしょうか
328:Name_Not_Found
08/06/17 07:34:31
>>327
そのコードのあるscript要素をid="sample"の要素より
後ろに書けばよい。
329:Name_Not_Found
08/06/17 07:35:23
function dell() {
var sample = document.getElementById('sample');
if (sample){
sample.style.display = 'none';
}
};
dell();
これはどう?
330:Name_Not_Found
08/06/17 14:16:19
基本的なことですが、
var aa = document.getElementById("test").value;
としたとき、aa = 123;でformのvalueに代入できないのは
なぜですか。
document.getElementById("test").value=123;
でできるのに、と思うのですが。
331:Name_Not_Found
08/06/17 14:42:50
A=B AにBを代入する
332:Name_Not_Found
08/06/17 16:10:01
>>330
あなたのプログラミング言語の理解モデルが間違っているから。
IDがtestという入力部品とtest1という入力部品があったとして
document.getElementById("test").value = document.getElementById("test1").value;
とかすると以後test1とtestには常に同じものが表示される、とか思えるわけね?
333:Name_Not_Found
08/06/17 16:28:07
>>330は
a=a+1
が理解できないのだろう
334:Name_Not_Found
08/06/17 16:54:06
>>330
aa に入っているのは値だコラっ!
参照じゃないぞ!
335:Name_Not_Found
08/06/17 18:29:46
>>330
おまいさんは一度ポインターを勉強した方がいいな
336:322
08/06/17 20:16:56
var ss = document.styleSheets[0];
ss.insertRule("#sample {display:none}", ss.cssRules.length);
スタイルシートに新しく加えるという方法でできました
これならid=sampleがない場合でもエラーはでません
ありがとうございました
337:Name_Not_Found
08/06/17 21:40:04
>>336
一つの解法としてそれは正しいのだけど
元の質問の解はこうなる
window.onload = function (){
if(document.getElementById && document.getElementById("sample")){
document.getElementById("sample").style.display = "none";
}
}
そもそも何でエラーが出たかというと
document.getElementById("sample") を実行した時点で
id="sample" はまだないから
338:Name_Not_Found
08/06/17 22:10:13
>>337
読み込み中または読み込み直後に隠す場合、
一瞬見えて隠したいなんて要望はほとんどない。
単に、DOM-Level-2-(CSS|Style) の知識が無いから、
質問がCSSStyleDeclarationでCSS2Propertiesを操作することだけに偏る。
同様の知識不足で、回答も同様に偏る。
しかし、繰り返すが、ふっつーに考えれば、一瞬見せたいわけではないと感じ取れるだろう。
何が元の質問の解だか。回答の選択肢が少ないだけだろう。笑わせる。
339:Name_Not_Found
08/06/17 23:02:03
うちはわざとそうしてる
だって JavaScript オフで見れないページを作ったってしょうがない
だから後で隠す
340:Name_Not_Found
08/06/17 23:24:18
>>339
onload(あるいはreadystateを反映)での処理では、一瞬表示されるという問題があるので、
document.write('<style>#sample...
か、もしくは>>336のような方法というように、
CSSへの設定の方がよりスマートだと思うけどね。
341:Name_Not_Found
08/06/17 23:32:17
自分は id="sample" が閉じた直後に消すな
document.write() は個人的にはあまり使わない
342:Name_Not_Found
08/06/18 01:09:13
document.write('<style type="text/css"><!--#sample{display: none}--></style>');
こうすれば簡単だろうけどルール的に駄目なんだよな
だから同じようなことするのに>>336の方法をとったんだろう
343:Name_Not_Found
08/06/18 02:27:51
>>336
window.onload = function() {
if(typeof document.getElementById("sample") == "object"){
document.getElementById("sample").style.display = "none"
}
}
これでいいと思うよ。関数が定義されていない場合とかにも応用可能。
344:Name_Not_Found
08/06/18 02:34:04
>>343
さすがに同じIDに対しgetElementByIdを2度実行するのは無駄なので、
それならこうするね。
window.onload = function() {
var elm = document.getElementById("sample");
if(elm)
elm.style.display = "none"
}
345:Name_Not_Found
08/06/18 02:55:39
>>344
それでもよさげだけど、elmが存在しないときに
elmにfalseが代入される保証はあるのかな。
エラーを返すブラウザがあってもおかしくない気がする。
typeofの方が安全だと思うよ。
あと、無駄に関してはelmに代入したほうが大きい。
346:Name_Not_Found
08/06/18 03:09:19
>>345
マジレスすると、
getElementByIdで、object(のリファレンス)かnull以外が返される実装があったら教えて下さい。
全面的にコードを書き直す必要があるくらい、かなり興味深い話題なので。
347:Name_Not_Found
08/06/18 03:11:27
そーなんだ。ならそれでいいと思う。
348:Name_Not_Found
08/06/18 03:14:22
編集中に投稿しちゃった・・・
たぶんnullかfalseを返すと思うし、多分大丈夫だと思うけど、
俺も調べてないからよくわからないや。
349:Name_Not_Found
08/06/18 03:14:41
>>345
> あと、無駄に関してはelmに代入したほうが大きい。
これって検証可能なソース出せるわけ?
350:Name_Not_Found
08/06/18 03:20:33
元々頭の悪いテンプレ厨が湧いているスレだけど、
>>345=>>347-348なら、
これほど適当な発言をする人間はもはや害以外の何物でも無いね。
351:Name_Not_Found
08/06/18 03:39:06
サイト上にある任意の文字を変換したいのですが
例えば あいうえお → かきくけこ にしたいのです書き方がわかりません
document.replace('あいうえお','かきくけこ')
よくある例文では
var str = 'abcd'
str.replace("ab", "cd")
でstrを指定しているのですがこれがhtml上の場合どのように指定すればよいのでしょうか
352:Name_Not_Found
08/06/18 03:49:25
>>351
イベントハンドラとか消えてもいいなら
document.body.innerHTML = document.body.innerHTML.replace("あいうえお", "かきくけこ")
353:351
08/06/18 04:52:46
>>352
ブラウザがかたまってしまいました・・・
354:Name_Not_Found
08/06/18 05:05:23
>>353
糞スペック乙
355:Name_Not_Found
08/06/18 13:53:24
Firefox3がすげえ
356:Name_Not_Found
08/06/18 14:06:19
JavaScriptに関してならSafariのほうが上だな
357:Name_Not_Found
08/06/18 15:11:04 rS/mkLH/
連番画像を切り替える際に
function change(){
n++;
if(n==4)n=0;
document.irg.src="img/pic"+n+".jpg";
とかだと一桁枚数はできるのですが、二桁、例えば20枚の画像を切り替えたい場合は
どう表記すればいいのでしょうか?
358:Name_Not_Found
08/06/18 15:11:46
>>344
>>343はどのように無駄なんでしょうか?
elmにリファレンスが入ってるってだけで、
どっちもgetElementByIdを2度実行してると思うのですが。
コードの読みやすさの話ってわけでもなさそうだし。
359:Name_Not_Found
08/06/18 15:17:25
>>357
if(n==4)の4のところを20に変える、って話ではない?
>>358
> どっちもgetElementByIdを2度実行してると思う
>>343はしてるが>>344は1回だぞ
>>344は取得した要素オブジェクトかnullをelmに入れてるんだから
2回実行できようが無い
360:Name_Not_Found
08/06/18 15:20:15
このスクリプトの実行を中止しますか?
このページのスクリプトが、Internet Explorer の実行速度を遅くしています。
スクリプトを実行し続けると、コンピュータが反応しなくなる可能性があります。
---------------------------
はい(Y) いいえ(N)
---------------------------
を回避する方法は
URLリンク(support.microsoft.com)
に「 5 秒間隔で PeekMessage を呼び出してタイムアウトをリセットする必要があります」って書いてあるけど
PeekMessageをjsで呼び出すにはどうしたらいいの?
PeekMessage()じゃダメらしい
361:Name_Not_Found
08/06/18 15:30:27
>>359
聞き方が悪かったです。ごめんなさい。
というか、解決しました!
function change(){
n++;
if(n==?)n=0;
document.irg.src="img/pic0"+n+".jpg";
こういう考えでやってたもので・・・n自体に二桁以上が入るのは考えてませんでした。
回線切って電源落として首吊ってきます。
362:Name_Not_Found
08/06/18 15:58:11
>>360
PeekMessageはWindowsAPI。
ActiveXでも使わなければ無理では。
363:Name_Not_Found
08/06/18 20:51:02
URLリンク(www.flickr.com)
この画像の投稿者はΛl℮Roda®さんですが
「℮」とか「®」とかのunicodeでないと表現出来ない文字を自動的に置き換えてくれるライブラリみたいなの教えて下さい
勿論厳密な置き換えは無理なことは分かっていますので
「℮」→e
「®」→(R)
みたいな置き換えで十分です
364:Name_Not_Found
08/06/18 21:50:08
ライブラリ まで読んだ
365:Name_Not_Found
08/06/18 21:55:00
だれか>>363のリンクで飛んだ?押しても大丈夫?
366:Name_Not_Found
08/06/18 22:11:19
>>365
どうせサロゲートペアまで変換しちゃうどこぞのPerlが得意なキモオヤジの自演だから、放置しとけ。
367:Name_Not_Found
08/06/18 23:06:42
踏んだよ。フツー なんか風景。BRAZILとかあるからCGかなんかかしら
以下スレチ:flickrでヤバいリンクってあるのかな。
グロとかアップできちゃうサービスという印象もないけど
368:Name_Not_Found
08/06/18 23:48:46
>>363=自演かw 乙
369:Name_Not_Found
08/06/19 04:51:53 HjeHeh3z
prototype.jsのトグルで表示・非表示の切り替えをしてるんだけど、
ページを開いた時(初期表示)で非表示状態にするにはどうしたら良いですか?
<body onload="hideToggle(idName)">
って感じで非表示トグルを実行しようとしてるんですが、これだと一瞬
隠す部分が画面に映ります
自分なりに調べたんですがわからなかったので誰かご意見ください
よろしくお願いします
370:Name_Not_Found
08/06/19 04:59:14
このスレくらい読めばいいと思うよ
371:Name_Not_Found
08/06/19 11:08:05 YXAbfQDi
>>369
逆に最初非表示にしておいて後から必要な箇所だけ表示するんじゃダメなの?
372:Name_Not_Found
08/06/19 12:26:54 rbx28/KF
同サーバ内のテキストファイルを読み込みたい
.jsなら>>306-314、
それ以外ならxmlHttpRequestを使えばできるのですが、
単にテキスト読み込むだけなのにわざわざxmlHttpRequest使うのはどうなんだろうと。
PHPで言うfile_get_contentsみたいなのはないですかね。
373:369
08/06/19 12:28:23 HjeHeh3z
>>371
最初非表示にするってどうするんですか?
表示切替ってtoggleでやるものだと思ってたら、cssも併用するんですね
そのことを言ってるんでしょうか?
374:Name_Not_Found
08/06/19 12:29:50
>>373
>cssも併用するんですね
その方が無難
375:Name_Not_Found
08/06/19 12:33:59
>>372
ない。XmlHttpRequestでresponseTextから取り出せば
別に問題ないじゃん。
376:369
08/06/19 12:35:18
>>374
本当にありがとうございます
cssでのやり方を勉強してみます みなさんありがとう
377:Name_Not_Found
08/06/19 13:11:58 wVAEkJPX
Javascript の配列は結局のところキーとして0以上の整数を
とるハッシュと思って扱えばよいのでしょうか?
それとも内部的にまったく異なるものとして扱われているのでしょうか?
a[0] と a[10] が何か値を持っているとき、 a[1],...,a[9]
が内部でどのように扱われているかについての規定はあるのでしょうか?
378:Name_Not_Found
08/06/19 13:27:42
>>377
URLリンク(www2u.biglobe.ne.jp)
によれば、a[10]が存在していればa[0]~a[9]も自動的に存在する
ようになる、と読めるね。
379:Name_Not_Found
08/06/19 13:35:20
>>378
そうか?別段そういうことは書いてないと思うが
380:377
08/06/19 14:12:28 wVAEkJPX
URLリンク(builder.japan.zdnet.com)
この前後の連載を読んで理解しました。
C/C++ ばかりだった自分にとってはずいぶんと違う世界でした。
381:Name_Not_Found
08/06/19 14:29:59
>>379
そうだね、何か勘違いしたようで、申し訳ない。
382:377
08/06/19 14:43:49 wVAEkJPX
JSON関係の質問もここで良いですか?
JSONでは文字列は「ユニコード」であるとされていますが、
これって非ASCII文字はすべて \uxxxx 形式のエスケープで表記せよ、
ということなのでしょうか?
Unicode といわれても表現方法は UTF-8 を含め多数あるので、
その当たりの表現方法については決められているのかなと
思ったのですが、特に規定されていないようでどうしたものかと。
383:377
08/06/19 14:58:31 wVAEkJPX
すんません、おちついてRFC読み直してみたら書いてありました。
URLリンク(www.ietf.org)
384:Name_Not_Found
08/06/19 19:12:47
うろ覚えで何て単語で検索して良いのかわからないので確認したいんのだけど、
「ある要素を監視しておき、その要素に他の要素が追加された時にイベント発生」
というような機能なかったでしたっけ?
誰か知ってたりしたら教えてください。
385:Name_Not_Found
08/06/19 19:20:44
>>384
DOMNodeInserted?
386:Name_Not_Found
08/06/19 21:22:35
>>385
ドンピシャだった!ありがとう。
387:Name_Not_Found
08/06/19 22:57:50 HjeHeh3z
動的にサーバ上のjpgを読みに行くにはどうしたら良いでしょうか?
DWに標準でついてるスワップイメージを最初考えたんですが、
アレだとすり替え用のデフォルトの画像が必要です
完成イメージとしては、チェックボックスをクリックすると、それに応じた
画像が表示され、チェックを全部クリアすると画像が消える感じです
すみませんがどなたかアドバイスお願いします
388:Name_Not_Found
08/06/19 23:02:03
>>387
賢い俺が翻訳してやると、画像URIをユーザーが選べるようにしたい、ということかね。
389:Name_Not_Found
08/06/20 00:18:25
>>378
で、多数チェックしたときはどうなるって?
390:Name_Not_Found
08/06/20 01:55:59
ページ上にある特定のスタイル 例えば style="color:red; を
ボタンクリックしたら style="color:black; というようにしたいのですが
style自体は他にも使われているのでstyleの要素だけでは抜けられないと思います
なのでcolor:red; → color:black; というようにテキストを置換する方法を考えていますが
どのように書けばいいのでしょうか?
document.replace('color:black; ','color:black; ')
これだとうまくいきません
391:Name_Not_Found
08/06/20 02:10:30
>>390
<... style="color:red"な要素すべてを<... style="color:black"にする
でよしか?
var elements = document.getElementsByTagName('*');
for (i = 0; i < elements.length; i++) {
if (elements[i].style.color === 'red') {
elements[i].style.color = 'black';
}
}
392:390
08/06/20 03:36:54
>>391
ありがとうございます
styleの要素が二つのとき
style="color:red; font-size: 14px"
こう書いたのですがうまくいきません
if((elements[i].style.color === 'red') && (elements[i].style.fontSize === '10')){
elements[i].style.color = 'black';
}
どのような条件式になるのでしょうか・・・
393:Name_Not_Found
08/06/20 06:29:30
自己解決しますた
394:Name_Not_Found
08/06/20 11:10:56
他のページに飛ぶのではなく、同一ページ内で
swfの表示サイズ(width=***, high=***)を
閲覧者がポップアップメニューで切り替えられるような
スクリプトってありますか?
画像でも同じようなスクリプトがあればswf用に転用出来ると
思うのですが、もしそのようなものがあればご教授ください。
395:Name_Not_Found
08/06/20 11:47:15 KZpiizg0
下記のようなフレーム構造で
under.html内のjavascript実行(innerTextで文字列を変える)してから
top.htmlでsubmit実行すると、under.htmlが別ウィンドウで開いてしまいます。
理由と解決策をご存知でしたら教えてください。
※JavaScript実行しない場合は正常に動作します。
□test.html
<frameset rows="100,*" border="1">
<frame src="top.html" name="top">
<frame src="under.html" name="under"/>
</frameset>
□top.html
<form action="under.html" method="post" target="under">
<input type="submit" value="送信">
□under.html
<table>
<tr><td>aaa</td><tr>
<tr><td>bbb</td><tr>
<tr><td>ccc</td><tr>
</table>
396:Name_Not_Found
08/06/20 11:50:02
>>395
その問題を起こしているげなスクリプトを貼らずに相談とは
いい度胸だね。
397:Name_Not_Found
08/06/20 12:48:16 KZpiizg0
仰るとおりです。申し訳ないです。
原因となってるっぽい箇所です↓
onblurでtest()を呼び、計算させて<td></td>の中をinnerTextで書き換えるとい
う処理ですが、
この計算実行で既に発生することがわかりました。計算結果は正しいものとなっ
ています。
fuction test()
{
total = 0;
for(i=0; i<3; i++){
object = getObject(i,"02");
total += parseInt(object.value);
}
}
function getObject(row,col)
{
name = "a" + row + "b" + col;
return document.フォーム名.elements[name];
}
398:Name_Not_Found
08/06/20 13:30:09
>>397
あのねえ、nameという変数を使いたいのなら「var name = ...」
のようにしてローカル変数にしないと。今はグローバル変数
つまり window.name を書き換えているため、そのフレームの名前が
under でなく a0b02 みたいな名前になっていると思われ。
399:Name_Not_Found
08/06/20 13:53:53
>>398
解決しました!ありがとうございます!
特に意識せずに変数名つけてましたがローカルグローバルもちゃんと考えなきゃですねm(__)m
勉強になりました!
400:Name_Not_Found
08/06/20 16:31:15 UBjOGtUw
ファイルをDLさせたいがそのファイルの生成にすげー時間がかかるんで、
submitボタン連打を5秒間だけ防止したい
<input type="submit" name="button" value="push" onclick="return renda();">
var timeout=0;
function renda(){
timeout++;
if(timeout>5){
timeout=0;
document.button.button.disabled = false;
return false;
}else if(timeout==1){
document.button.button.disabled = true;
window.setTimeout("renda();",1000);
return true;
}else{
window.setTimeout("renda();",1000);
return false;
}
}
FFではエラーも検出されずきちんと動作しましたがIEでは動きませぬ。何故でせう。
401:Name_Not_Found
08/06/20 16:39:48
>>400
「動かない」の内容をちゃんと書けって。エラーが出るのか
何も反応しないのか、その時ボタンは押せてるのかとか。
402:Name_Not_Found
08/06/20 16:40:49
document.compatMode=='CSS1Compat'
DOCTYPEをこれより少ない文字数で判定する方法はありませんか?
IE専でかまいません
403:Name_Not_Found
08/06/20 17:05:31
var d = document, c = d.compatMode;
c == 'CSS1Compat'
404:Name_Not_Found
08/06/20 17:15:02 UBjOGtUw
>>401
そーりー
・5秒間禁止は問題なく動作
(押した直後に押せなくなり、5秒後に押せるように戻る)
・次画面に遷移しない
(次画面をテキスト表示だけ、等にしてみたが反応せず)
・function renda(){document.csvDL.button.disabled = true;window.setTimeout("renda();",1000);return true;}
とすると動作
405:Name_Not_Found
08/06/20 17:27:54
>>403
すいません、そういうことではなくて
文字総数で少なくしたいので
document.compatMode=='CSS1Compat'
の33文字より少なくできる方法はありませんか?
compatModeプロパティにこだわる必要もないです。
406:Name_Not_Found
08/06/20 17:34:31
時間待ちをする関数とonclickで呼ばれる関数を一緒くたに
したから自分でロジックを追えなくなってるんでしょ。
分けたら。そもそも5秒なんだからタイムアウトを5000で
作ればいいのに。
407:Name_Not_Found
08/06/20 20:07:31 UBjOGtUw
>>406
Σ(゚□゚;)!!
408:Name_Not_Found
08/06/20 23:56:55
変数にweb上のHTMLデータを代入したいのですが
どのようにすればいいのでしょうか。
409:Name_Not_Found
08/06/21 00:10:16
>408の動作環境を書き忘れました
Javascriptを組み込んだHTMLはweb上にあります
そのHTML内のJavascriptが読み込みたいHTMLデータもweb上にあります
ローカルのファイルは一切いじりません
410:Name_Not_Found
08/06/21 00:12:35
>>409
同じ鯖なのね?それならXmlHttpRequest()で読むんでしょ。
411:Name_Not_Found
08/06/21 01:22:00
>>410
ぉ、お、おおお
ありがとうございますm(_ _)m
Ajaxって今ではどのブラウザでも標準でついているんですね
前ちょろっと見た時にライブラリが必要なのかなーとか思ってましたが
凄い敷居が低くてありがたいです
別の鯖ですが、別の鯖だと動作しないのでしょうか
2ch全板トーナメントスレが新しくなる度にHPを更新するのが面倒なので
色々考えた末にJavascriptで実装できそうかなーと思って
調べてたのですが結果分からず質問致しました。
スクリプトは塩街にでも置こうと思ってます
412:Name_Not_Found
08/06/21 01:22:21
>>410
大文字小文字
413:Name_Not_Found
08/06/21 01:25:14
魚の話題はスレ違い。
というか、馬鹿な初心者にははっきり言った方がいいな。
鯖って何ですか?勘弁してください。
414:Name_Not_Found
08/06/21 01:44:31
俺はプロキシサーバのことを「串」と書く点も厨判定に利用してる。
415:Name_Not_Found
08/06/21 01:53:21
2chやめとけ
416:Name_Not_Found
08/06/21 01:55:31 N+PRjJ56
よろしくお願いします。
下記記述で「/」の為、jsが動きません。
「/」は必ず使いたいので、回避方法をご教示いただけませんでしょうか、、、
function checkA(){
var flag = 0;
if(!document.iform.果物/りんご.checked)
if(!document.iform.果物/みかん.checked)
{
flag = 1;
}
if(flag){
window.alert('果物項目がチェックされてません');
return false;
}
else{
return true;
}
}
417:Name_Not_Found
08/06/21 02:41:17 lAfacg6N
JavaScriptでサーバ上にあるXMLファイルを読み込む処理を勉強しております。
参考URL:URLリンク(www.openspc2.org)
そこで質問です。
以下のXMLファイルで、cacheタグに挟まれているurlタグの中の文字列は出力しないようにし、
resタグ直下のurlタグのみを出力するには、以下のJavaScriptのソースをどう改修すればよいでしょうか?
【XML】
<?xml version="1.0" encoding="UTF-8" ?>
<set>
<res>
<title>タイトル1</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
<res>
<title>タイトル2</title>
<url>URLリンク(hogehoge.jp)
</res>
<res>
<title>タイトル3</title>
<url>URLリンク(hogehoge.jp)
<cache>
<url>URLリンク(cache.hogehoge.jp)
</cache>
</res>
</set>
418:417
08/06/21 02:42:14 lAfacg6N
【JavaScript(HTML内)】
~(省略)~
xmlData = httpObj.responseXML;
resTag = xmlData.getElementsByTagName("res");
titleTag = xmlData.getElementsByTagName("title");
urlTag = xmlData.getElementsByTagName("url");
resultTxt = "";
for(i=0; i<resTag.length; i++){
s_title = titleTag[i].childNodes[0].nodeValue;
s_url = urlTag[i].childNodes[0].nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
~(省略)~
【現状の出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(cache.hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
【期待する出力結果】
タイトル1 : URLリンク(hogehoge.jp)
タイトル2 : URLリンク(hogehoge.jp)
タイトル3 : URLリンク(hogehoge.jp)
419:Name_Not_Found
08/06/21 02:58:43
>>418
urlTag[i].parentNode.tagName !== 'cache' とかで見えんかな
420:Name_Not_Found
08/06/21 03:31:05
JavaScriptでもweb上のファイルを読み込みができるんだな
そういうのはいつもPHPでやってたわ
そうかリロードしなくても更新ができるとういうわけか
421:Name_Not_Found
08/06/21 08:25:07
>>420
そういうのをAjaxと呼ぶんじゃなかろうか。
422:Name_Not_Found
08/06/21 08:50:42
>>413
テンプレのFAQにも「鯖」が使われているんだけど。
なんでテンプレには文句言わないの? (直すのに反対
してるわけではなくて、なんでテンプレ論議のときに
指摘しないのか不思議なだけ。)
423:Name_Not_Found
08/06/21 08:57:56
>>422
馬鹿な初心者を構っちゃらめ
ヌルー汁
424:Name_Not_Found
08/06/21 11:20:57
【鯖】
スズキ目サバ科の海水魚、マサバとゴマサバの総称。魚体は紡
錘形でやや側扁し、背びれ・尻びれの後方に小さなひれがいく
つか並ぶ。世界に広く分布し代表的な食用魚。俳句では夏の季語。
○―釣や夜雨のあとの流れ汐/蛇笏
425:Name_Not_Found
08/06/21 11:23:48
>>422
一括りにするつもりは無いが、こういう奴はプログラマに本当に多い。
性質上そうなるのかもしれないがリアルで付き合うのはマジ簡便。
426:Name_Not_Found
08/06/21 11:49:18
>>425
プログラマの空気の読めなさはまじで異常だよな
あと議論がいつも小学生みたいな揚げ足取りになる
極端な例で言えば「何年何月何日何時何分何秒地球が何回周った時?」とかそんなの
427:Name_Not_Found
08/06/21 11:59:00
プログラマってほんと頭悪い奴の職種なんだな
有能マが可哀想だ
428:Name_Not_Found
08/06/21 12:05:55
スレ違いな話題はよそでやってね。
429:Name_Not_Found
08/06/21 12:10:01
>>413 が激高して多重自演してる様に激藁タよ。
430:Name_Not_Found
08/06/21 12:16:18
HPにアクセスカウンターつけたいんですがどうすればよいのでしょうか?
使ってるソフトはHPビルダ12です
ググったところレンタル?するもののようですがいまいち概念がわかりません
いま↓のようなところを読んでるのですが
Javaスクリプトをhtmlソースに組み込むことでカウンタをレンタルして効果がでてるということなのでしょうか・・・?
URLリンク(count.sekkaku.net)
431:Name_Not_Found
08/06/21 12:17:16
おれ高校中退後コンピュータの専門がっこ。会社じゃ目下某服
飾企業のHPのリニューアルPJ参加中。無能なのはよくわかって
る。といって他にできるものねぇしなぁ。悪かったな。
432:Name_Not_Found
08/06/21 12:20:10
>>430
そのビルダとかいうのを卒業しないかぎりアンタには無理。
433:Name_Not_Found
08/06/21 12:20:15
>>431
充分有能じゃないか自信もて。
無能ってのは何もできないのに他人を卑下してるやつのこと
434:Name_Not_Found
08/06/21 13:49:37
裏日本の金沢市でjavascriptの勉強会とか開催したら参加してくれる人
っているもんだろうか?ちょっと考えているのですが集まるかどうか不安。
内容としてはフラナガンの本を読むかprototype.js等のライブラリを読
むかとか考えてます。
435:Name_Not_Found
08/06/21 15:09:38
>>434<-ちょっとオフトピだがマジレス。
集まるかどうか不安なんて言ってたら何にもできませんぜ。
とにかくやってあんたのひた向きな背中を金沢市内の人間みんなに
見せることだろ。うちの区(東京下町)では区報にワークショップてな
コーナーがあって、PCはじめいろんなお稽古事関係が講習や教室を
開いて参加者を募集している。最初はまず人は来ないと思った方が
いい。そういうのをやると少しは素っ頓狂な質問も減るかなと思う。
がんばれ。
436:Name_Not_Found
08/06/21 15:39:09
マウスの座標取得で、
event.clientXなどでIEはで来たのですが、FF等で動きません。
クロスブラウザ対応なマウス座標取得はどうすればいいのでしょうか?
437:Name_Not_Found
08/06/21 15:48:01
>>418
var xmlData = httpObj.responseXML;
var resTag = xmlData.getElementsByTagName("res");
var titleTag = xmlData.getElementsByTagName("title");
var urlTag = xmlData.getElementsByTagName("url");
var resultTxt = "";
var i = 0, j = 0;
while(titleTag[i]){
s_title = titleTag[i].firstChild.nodeValue;
if(uriTag[j].parentNode.nodeName == "cache"){
j++;
}
s_url = urlTag[j].firstChild.nodeValue;
resultTxt += s_title + " : " + s_url + "<br>";
}
こんな感じかな
438:Name_Not_Found
08/06/21 15:56:10
>>435
確かにそうだな。やってみなけりゃ何も始まらんな。
そういう場所をまず探してゆくか。
ありがとう。
439:Name_Not_Found
08/06/21 16:05:26
>>436
過去スレ全集で検索すればいくらでも見つかるよ。
440:Name_Not_Found
08/06/21 20:59:33
>>436
Event.pointerX(event) Event.pointerY(event)
441:Name_Not_Found
08/06/21 21:00:45
言い忘れたゴメン
上のはprototype.jsを使ったやつな
442:Name_Not_Found
08/06/21 21:01:52
XSLTってあったな。
今時のサーバとブラウザの世代交代を考慮すると、本番運用できるかもな。
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="res[child::title and child::url]"><xsl:value-of select="child::title"/> : <xsl:value-of select="child::url"/><xsl:text> </xsl:text></xsl:template>
<xsl:template match="node()"><xsl:apply-templates/></xsl:template>
443:377
08/06/22 00:12:37 XEoiJWyd
あるテキストファイルがJSONファイルとして正しいかどうかを検証してくれるサイトってありませんか?
444:Name_Not_Found
08/06/22 02:24:55
それはここに書く前に検索した方が比較にならないほど早く解決するだろう。
もしファイルの内容をじかに書かなければならない不便な物しか見つからなかったら、ファイルの内容を投げて結果を調べるコードを書けばいいだろ。これまたそこそこ丁寧に書いても30分以内に書ける。
つまり、オマエが物乞いだということだな。生き恥晒してんじゃねえよ。
445:Name_Not_Found
08/06/22 04:11:47
>>442
URLリンク(www.wowarmory.com)
恐らく毎日膨大なPV数であろう、一般ユーザー向けのサイトで使われている興味深い例。
>>443
JSON validatorあたりでググってみる。
>>444
>生き恥晒してんじゃねえよ。
446:Name_Not_Found
08/06/22 04:17:24 W8+DpW9j
以下のような<div>でくくったcheckboxが2つあります。
<div id="boxA[]" style="display:none"><input type="checkbox" name="cbA[]" value="1" /></div>
<div id="boxB[]" style="display:none"><input type="checkbox" name="cbB[]" value="1" /></div>
このdiv二つは、別のプルダウンのoptionの選択の切り替えでdisplayを操作していて、
・boxAを表示してるときはboxBが隠れている
・boxBを表示してるときはboxAが隠れている
・プルダウンが未選択(デフォルト状態)の時は両方とも隠れている
…という形になっています
また、この「<div>2つ + 操作してるプルダウン1つ」は3セットあります。
このとき、
・3セットのうち、2セットをboxBを表示&チェック(boxAはdisplay:none)
・残りの1セットををboxAを表示&チェック(boxBはdisplay:none)
してPOST送信するとポストデータに異常が発生します。
boxB、boxAともに、display:none状態のまま送信した分が、データとしてわたらないのです
以下、ポストデータを var_dump($_POST) したものです。
["cbB"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1"}
["cbA"]=> array(1) { [0]=> string(1) "1"}
本来なら、両方とも array(3) となるように、配列が3つわたると思うんですが、
どうしたら解決するでしょうか?
URLリンク(memo.hirosiki.jp) を見ると、この問題に触れてるんですが
送信エラー起こす場合と起こさない場合があるようで、イマイチ答えになりません
対策や意見をもらえたら幸いです よろしくお願いします
(ちなみに、データの入力はCHECKBOXでなくプルダウンでも同様になります)
447:Name_Not_Found
08/06/22 04:54:40
チェックボックスは off だとデータ渡らないけどね
そういうことじゃなければソースをどっかにうpして
正直読んでてよくわからん
448:Name_Not_Found
08/06/22 05:46:32
>>447
いや、そういうことだと思う
個人的にはidやnameに大かっこ使ってるのが気になってしょうがないけどこれ不正じゃないの?
449:Name_Not_Found
08/06/22 05:51:59
name の方は [] で送ると
サーバサイドのスクリプト上では配列として受けれるんだよね
id の方はちとマズいだろな
450:Name_Not_Found
08/06/22 05:58:56
なるほど
451:Name_Not_Found
08/06/22 06:12:03
>>446
input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
その言語には array_values() や array_flip() などの便利なトップレベル関数があるのだから、それらのどれらかを使える形を整えろ。
あと、CSSのdisplayプロパティとその値は関係ない。
ついでだが、>>449の言う通り、div要素型(に限らず)、id属性値はNAME・ID型だから括弧は使えない。
(さらについでだが、input要素型のname属性値はCDATAだからだいじょうぶ。)
452:377
08/06/22 07:41:29 XEoiJWyd
>>445 THX
JSONLint The JSON Validator
URLリンク(www.jsonlint.com)
453:377
08/06/22 08:06:51 XEoiJWyd
TinyJSON - A Minimalistic JSON Reader Based On Boost.Spirit, Boost.Any and Boost.Smart_Ptr
URLリンク(blog.beef.de)
C++好きの自分にはよだれが出る。
454:Name_Not_Found
08/06/22 09:23:27
XMLHttpRequestってIEとFFとかで動作違う?
こちらから指定したXMLの内容の一部(中で1から順番に番号を振ってる、その例えば10~20)をXSLTで変換して表示させようとしてるんだけど、IEでうまくいってFFでうまくいかない
ほとんど載ってた例文どおりに書いたんだが・・・
どこかわかりやすいサイトとかある?
455:Name_Not_Found
08/06/22 09:41:34
Firebug とか使ったらなんかわからんもんかね?
456:Name_Not_Found
08/06/22 09:45:22
>>453
クロスブラウザ対応のXHRっURLリンク(allabout.co.jp)
457:Name_Not_Found
08/06/22 09:45:45
失礼安価ミス>>456は>>454ね。
458:Name_Not_Found
08/06/22 09:47:21
その例文とやらを乗せるのが一番早いかと
459:Name_Not_Found
08/06/22 11:13:12
>>454
XMLHttpRequestはIE7以上でないと使えない
IE6以下はActiveXObject使うしかない
場合分けしる
460:446
08/06/22 12:07:53
皆さんありがとうございました、ご意見を参考に頑張ってみます
(idの値についてですが、書き間違えでした。ちゃんと
boxA1,boxA2,boxA3 boxB1,boxB2,boxB3 となっています
>>451
>input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
それだと場当たりの処理は出来ますが、「渡されるべき形で配列が渡されない」という
本質的な問題は解決しません
それで居心地が悪いので質問させてもらいました ありがとう
461:Name_Not_Found
08/06/22 12:59:10
なんだかヘンな方に議論が行っているような。
display:none だとその部分は「存在しない」のでデータが渡らない。
visibility:hidden だとその部分は「見えないだけ」なのでデータが渡る。
462:Name_Not_Found
08/06/22 13:20:00
> display:none だとその部分は「存在しない」のでデータが渡らない。
君の脳内ブラウザではそうかもしれんが
あんまり無責任な発言をしてもらっても困る
463:Name_Not_Found
08/06/22 14:47:27
display:noneもvisibility:hiddenも表示を消す、物は残ってる。
単にその存在分の空白が残るか残らないかって話だけ
464:454
08/06/22 14:56:11
レスthx
サンプルのURL消しちゃってたからもう一度探してくる
下が今弄ってるものなんだけど、いろいろ入れ替えたり書き直してたりしてたらIEでも動かなく・・・orz
IE7とFF2(今は3)を使っているから、テスト段階ではXMLHttpRequestだけでいいかと思ってそれしか書いてない
当然あとで書き足す予定
function goend(threadnum,startnum,loop){
var snum = startnum;
var fnum = Math.abs(startnum) + Math.abs(loop);
var xmlfilename=threadnum + ".xml";
var xmlt = new XMLHttpRequest();
var xslt = new XMLHttpRequest();
xmlt.open("GET",xmlfilename,true);
xmlt.onreadystatechange = function(){ if(xmlt.readyState == 4){
var xmld = xmlt.responseXML;
xmlt.send(null); } }
xslt.open("GET","../xsl.xsl",true);
xslt.onreadystatechange = function(){ if(xslt.readyState == 4){
var xsld = xslt.responseXML;
xslt.send(null); } }
var vali = new Array();
try{ vali=xsld.getElementsByTagName("xsl:variable");
}catch(e){ try{ vali=xsld.getElementsByTagName("variable");
}catch(e){ alert("getElementsByTagName Error"); } }
vali[0].text=fnum;
vali[1].text=snum;
var htmld;
htmld = xmld.transformNode(xsld);
document.write(htmld);}
465:Name_Not_Found
08/06/22 15:20:47 XEoiJWyd
JSONって{ "a": "b", "a":"c" }
みたいにオブジェクト(ハッシュ)のキーが重複するような
データは規格の上で間違っているとされているの?
それとも単に eval()で評価すれば後から設定したプロパティ
に置き換わるだけなのでそれでよしということなのでしょうか?
466:417-418
08/06/22 15:49:19 pf9eXiX0
>>437
㌧クスです!できました。
467:Name_Not_Found
08/06/22 15:55:22 pf9eXiX0
Yahoo!検索で一番上に出てくるサイトのリンクを作るプログラムです。IE6で動作確認しています。
「取得」ボタンを押すと、一回目はエラーが必ず出てしまい、もう一度「取得」ボタンを押すとうまくいきます。
一回目からうまくいくようにするにはどうしたらよいでしょうか?
何か、カウント用変数のiとjがおかしいことになってるみたいなんですが…。
ちなみにデバッグ用にalertを3箇所に書いてありますので、アラートいっぱい出てきてOKという方はコメントアウトを外して実行してみてください。
お願いします。
<html><head><title></title>
<script type="text/javascript">
<!--
word = new Array("javascript", "ajax");
site = new Array("2ch.net", "jbbs.livedoor.jp");
function createXMLHttpRequest(cbFunc){
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}
// 下に続く
468:467
08/06/22 16:03:24 pf9eXiX0
// 上の続き
function loadXMLFile(fName){
httpObj = createXMLHttpRequest(displayData);
if(httpObj){
httpObj.open("GET", fName, true);
httpObj.send(null);
}
}
function displayData(){
if((httpObj.readyState == 4) && (httpObj.status == 200)){
//alert("デバック用(成功):\ni = " + i + ", j = " + j);
xmlData = httpObj.responseXML;
Result_Tag = xmlData.getElementsByTagName("Result");
document.getElementById("src_" + i + "_" + j).innerHTML =
"<a href=\"" + Result_Tag[i].getElementsByTagName("Url")[0].childNodes[0].nodeValue + "\" target=\"_blank\">" + Result_Tag[i].getElementsByTagName("Title")[0].childNodes[0].nodeValue + "</a>";
}else{
//alert("デバック用(失敗):\ni = " + i + ", j = " + j);
document.getElementById("src_" + i + "_" + j).innerHTML = "読み込み中";
}
}
function SearchResultCount(){
for(i=0; i<site.length; i++){
for(j=0; j<word.length; j++){
//alert("デバック用(正しいカウント):\ni = " + i + ", j = " + j);
loadXMLFile("URLリンク(api.search.yahoo.co.jp)" + encodeURIComponent(word[j]) + "&site=" + site[i]);
}
}
}
// 下に続く
469:467
08/06/22 16:04:46 pf9eXiX0
// 上の続き
//-->
</script>
</head><body>
<form><input type="button" value="取得" onClick="SearchResultCount();"></form>
・「javascript site:2ch.net」での検索結果:<b><span id="src_0_0"> </span></b><br>
・「ajax site:2ch.net」での検索結果:<b><span id="src_0_1"> </span></b><br><br>
・「javascript site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_0"> </span></b><br>
・「ajax site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_1"> </span></b><br>
</body>
</html>
470:467
08/06/22 16:14:21 pf9eXiX0
--------------------------
長いソースでスマソ。
※エラーの詳細
「'document.getElementById(...)' は Null またはオブジェクトでありません。」
displayData()関数で、
i も j も、値は 0 か 1 しか来ないはずなのだが、
なぜか i = 2になったり j = 2になったり。なぜだ??
471:Name_Not_Found
08/06/22 16:24:30
iとjがグローバル変数だからよその関数などで入れた
値と混ざってるんじゃないの。
for(var i = ...
for(var j = ...
に直してみれば。
472:Name_Not_Found
08/06/22 16:36:52
学校の課題でスロットを作っています。色々なサイトでスロットのソース見てきたのですが、
どの関数がどのような役割をしているのかがよく理解できませんでした。
ためしに自分でも3つの画像を使ったスロットを作ってみたのですがスタートを押すと
画像が変わる処理が1回で止まってしまい、ゲームになりませんでした;;
ソースは次の通りです
473:Name_Not_Found
08/06/22 16:36:52
>>465
RFC 4627
URLリンク(tools.ietf.org)
>The names within an object SHOULD be unique.
>>467
この状態では、SearchResultCountとdisplayDataとではi,jの値を共有しない為。
<!--
var i,j;
word = new Array("javascript", "ajax");
最初の方にこのように書けば大丈夫だろうけど、i,jのような変数名をグローバルで使うのはお勧めしない。
474:472
08/06/22 16:41:56
function Setimage()
{
for(i=0;i<4;i++)
{
image[i]=new Image(200,150);
image[i].src="image"+i+".jpg";
}
}
function Scroll()
{
time1=setTimeout("Scroll1()",100);
time2=setTimeout("Scroll2()",125);
time3=setTimeout("Scroll3()",150);
}
function Scroll1()
{
document.photo0.src=image[n].src;
n++;
if(n>=4)
n=0;
}
475:472
08/06/22 16:43:13
function Scroll2()
{
document.photo1.src=image[n].src;
n++;
if(n>=4)
n=0;
}
function Scroll3()
{
document.photo2.src=image[n].src;
n++;
if(n>=4)
n=0;
}
(中略)
<td align="center"><input type="button" name="start1" value=Start! onClick="Setimage();Scroll()">
多分おかしいところはこのあたりだと思うのですが。。。どうしたら繰り返しの処理が正しく
行われるのでしょうか。
476:Name_Not_Found
08/06/22 16:51:14
なんて汚いソース。
先に配列と引数覚えればもう少しきれいになると思う。
477:472
08/06/22 17:20:37
>>476
ありがとうございます。
a = new Array("月曜日","火曜日","水曜日","木曜日","金曜日");
b = new Array("1時限目","2時限目","3時限目","4時限目","5時限目","6時限目");
for(i=0;i<a.length;i++)
{
for(j=0;j<b.length;j++)
{
var subject = (i+j)%5;
if( subject ==0){alert(a[i]+"の"+b[j]+"は数学です")};
if( subject ==1){alert(a[i]+"の"+b[j]+"は国語です")};
if( subject ==2){alert(a[i]+"の"+b[j]+"は英語です")};
if( subject ==3){alert(a[i]+"の"+b[j]+"は社会です")};
if( subject ==4){alert(a[i]+"の"+b[j]+"は理科です")};
}
}
↑これが教材でした・・・。このような感じで配列や引数もやったにはやったのですが
これ(配列等)をスロットの中でどのように使えばよいのかが分かりませんでした。
理解が全く足りてなかったようですね>< 基礎をもう一度学び直してきます。
長文失礼しました&ありがとうございました。
478:Name_Not_Found
08/06/22 21:46:49
>>473
> i,jのような変数名をグローバルで使うのはお勧めしない。
極論すれば、どうでもいい。
常に初期化する規約を設ける方が、実は、はるかに建設的だ。
毎週2時間かかる1000万レコード超のオラクルデータ更新を、スワップ10Gb以下に抑えながら、
JScriptだけで
やっている俺が言うのだから、かなり説得力は高いだろう。
479:Name_Not_Found
08/06/22 21:57:58
>>478
ループ中にi使う関数呼び出されたらどうすんの?
480:Name_Not_Found
08/06/22 22:14:17
>>479
おいおい、まさか、スコープ超えて使うわけないだろ。
因みに、関数をほとんど使わない。とにかく、追加要求がまとまったら、ダラダラとグローバルに追記して実装する。
481:Name_Not_Found
08/06/22 23:21:17
関数に分けないでひたすらグローバルに書くなんて
40年前のスタイルだね。何箇所かで同じ処理をするときは
そのコードを必要なだけコピペするわけ?
482:Name_Not_Found
08/06/23 00:26:30
>>480
だから関数を「まったく」使わないなら全部グローバルは
分かるけど。関数を書く時にその関数の中で使う作業用の変数を
グローバル変数にしてるんだったらとんでもないと思うけどね。
483:Name_Not_Found
08/06/23 00:26:45
関数使わない方が速いっていう利点はあるよね。
484:467-470
08/06/23 01:13:26 DzJ84Pjg
>>471でやっても>>473でやっても駄目でした。
原因はiやjではなく別にあるような…。
485:Name_Not_Found
08/06/23 01:15:03
糞ソースを見るとイラっとする俺はもう駄目かもしれん
486:Name_Not_Found
08/06/23 02:17:08 uInEyN34
>>484
女子高生です
あなたセンスがないからもうやめた方がいいよ
487:Name_Not_Found
08/06/23 02:20:33
>>484
漏れも気になって再現してみたがやっぱり最初はだめだな。
デバッカで追っかけてみたが、よくわからんかった。
気持ち悪くて眠れんのだが。
488:Name_Not_Found
08/06/23 03:13:19 rQMNNzo3
オブジェクトの下にあるオブジェクト(この例ではAjax.Delegate)が存在するかどうかを判定して分岐するにはどうすればよいのでしょうか。
以下のソースをFirefox 3で実行してみると、アラートで[Object Object]と表示され、Ajax.Delegateオブジェクトが存在していることが確認されるのですが、
なぜかf(!Ajax.Delegete){}が実行され、中のalert(Ajax.Delegete);の結果”undefined”がアラートされます。
if(!Ajax){
var Ajax=new Object;
}
Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
alert(Ajax.Delegate);
if(!Ajax.Delegete){
alert(Ajax.Delegete);
Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
}
489:Name_Not_Found
08/06/23 03:50:21
スペル
490:Name_Not_Found
08/06/23 04:46:23
>>489
ありがとうございます。
1時間半の苦労がorz
491:Name_Not_Found
08/06/23 05:34:06 j4JVz+ZB
>>488
こういうミスって識別子の補完機能があるIDEつかっていれば
かなり少なくできると思うんだけど、Javascript だと
どういう環境があるの?みんなただのエディタ使っているの?
俺はメモ帳とかサクラエディタを使っている。
492:Name_Not_Found
08/06/23 06:24:24
質問です。
セレクトメニューで選択された項目に対して、変数に文字列を代入するにはどうしたらいいでしょうか。
493:Name_Not_Found
08/06/23 06:53:39
>>491
DashCodeに補完機能あると嬉しいんだけどなぁ
Xcodeには補完機能あるのにDashCodeにはない(´・ω・`)
Apple頼むよ…
Aptena Studioに補完機能あったかもしれないがEclipse系はJava独特のもっさり感があるのでどうも好きになれん。
URLリンク(www.panic.com)
こういうの買えってことなんだろなぁ
>>492
URLリンク(homepage3.nifty.com)
494:Name_Not_Found
08/06/23 06:58:29
ちょい訂正
よくぐぐってみたらcodaは補完いまいちだそうな
495:492
08/06/23 07:09:15
>>493
ありがとうございます。しかし例がなぜCCS・・・
496:Name_Not_Found
08/06/23 11:32:28
>>484
iとjを持ち回したら?
>>471が言ってる通りforの中でvarで宣言、
loadXMLFileを呼び出すときにiとjも渡す。
loadXMLFileの中でhttpObjのプロパティにセット
function loadXMLFile(fName, i, j){
httpObj = createXMLHttpRequest(displayData);
httpObj.searchData = {i:i,j:j};
displayData()の先頭でiとjを受け取る
var i = httpObj.searchData.i;
var j = httpObj.searchData.j;
ただ、そもそもhtmlの中に直書きしてある「javascript 2ch.net」とかを
javascriptのコードの中に書いてる時点でどうかと思うので全体的に見直した方が良いかも
497:Name_Not_Found
08/06/23 11:33:11
補完やツールチップ表示なら、Komodoでできるだろうな。デフォでは出来ないから、拡張を取ってくるか作るかせにゃならんだろうが、作るのはJavaScriptだから何とかなるだろ。
498:Name_Not_Found
08/06/23 11:56:35
emacsやxyzzyなら補完なんて当たり前にできるけどな。
499:Name_Not_Found
08/06/23 14:49:36
>>498
emacsって補完できるのかw
Mac OS Xに付いてきてるけど使ったこと無い;;
試してみます
500:Name_Not_Found
08/06/23 14:55:34
URLリンク(www.webhtm.net)
ぐぐったらviにもあった。知らなかった…
viメインにするかな…
501:Name_Not_Found
08/06/23 15:23:14
xyzzy の actionscript-mode をjavascript用にデータ変更すれば最強だろ。
502:sage
08/06/23 17:21:03 VigVkU4t
教えて下さい。
フォーム内のチェックボックスをラジオボタンのように常に1つだけ選択出来るようにしたいのですが、全く方法がわかりません。
親切な方お願いします。
503:Name_Not_Found
08/06/23 17:33:37
>>502
FF3/Safari3.1で確認。Win起動するの面倒くさいのでIEでは未確認。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "URLリンク(www.w3.org)">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')">
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
504:Name_Not_Found
08/06/23 17:38:16
>>503補足
"常に1つだけ"というのが、0個選択も許さないって意味だったら↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "URLリンク(www.w3.org)">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(!document.f[c].checked){
alert("最低1個選択してください。");
document.f[c].checked=true;
}
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')" checked>
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
505:Name_Not_Found
08/06/23 17:41:58
>>502
チェックボックスのonclickハンドラでチェックボックスがONに
なるのを検出する。で、その時自分以外のを全部OFFに変更する。
この説明で分からないなら勉強してね(ここは全部書いてあげる
スレではないので)。
506:Name_Not_Found
08/06/23 17:42:44
げげ…リロードしてなかったorz
507:Name_Not_Found
08/06/23 18:11:12
>>502
すなおに radio を使え。
>>503-504
NAME属性値が異なっているが、それは>>502がやりたいことなのか?
508:502
08/06/23 18:20:34
ありがとございます。
配列作ってってとこまではわかったんですが、渡した引数との整合(?)で躓いていたので本当に助かりました。
もっと勉強してきます。
509:Name_Not_Found
08/06/23 18:24:58
>>507
ググってみたらcheckboxも同じnameで配列でいけるのか;;知らなかった
>>504をする場合は素直にradio使った方が良いと思うが、>>503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。
510:Name_Not_Found
08/06/23 18:58:20 5YaKTodd
JSONで定義した無名ハッシュのキーリストを取り出すには
どういうメソッド/方法を使えばいいんでしょうか。
Perlのkeysみたいなのがないかなと・・・
最悪、リストを2つ用意してっていうのも考えてはいます。
511:Name_Not_Found
08/06/23 19:11:40
と思ったらまんまkeysでいいのね。ごめん。
512:Name_Not_Found
08/06/23 20:12:23
>>511
それはどこかに定義されているのだろうな。
例えば Firebug の console には keys() も values() もあるが、言うまでもなくページからは使えない。
513:Name_Not_Found
08/06/23 20:28:19
>>509
> 503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。
もし <form> の中に name="XXX" だけしかコントロールが無いのなら、JSは要らない。
デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。
JSが必要な状況は、
* <form> で囲まれていて、他の name 属性値を持つコントロールがある
* <form>で囲まれていない
の2通りあるが、これも radio コントロールを使って、単純に、...checked=false すれば良い。
結局、radio を使うのが最易。
514:467-470
08/06/23 21:49:02 DzJ84Pjg
httpObj.open("GET", fName, true);
↓
httpObj.open("GET", fName, false);
このようにopenメソッドの第三引数をtrueからfalseに変えたらうまくいきました。
true … リクエストを送った時点で次の処理へ進む(非同期通信)
false … リクエストからの応答があるまで待ってから次の処理へ進む(同期通信)
やっぱり、iやjがローカル変数だとかグローバル変数だとかってのは関係なかったみたいです。
っとなると、trueではどう頑張っても無理ですか??
一応、>>496のやり方も試しましたがだめでした。
515:Name_Not_Found
08/06/23 23:52:37
このおっさんしつこいなぁ
516:Name_Not_Found
08/06/24 03:58:37
>>512
ご名答、Firebugでした。やっぱりブラウザにはないのね・・・
グリモンで使おうと思ったんだけど、とりあえず使わず済ませました。
Firebugを関数リファレンスと考えちゃいけないとわかったのも収穫。
517:Name_Not_Found
08/06/24 07:13:21
>>513
>デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。
resetボタンという手があったか
そうなると、radioで無理なのは選択できるのが0~2個とか0~3個とかのときだけになるか
大した行数じゃないしjavascript+checkboxでも良い気がするが好みかな
518:Name_Not_Found
08/06/24 08:31:55
>>517
UIの統一感という意味でも、単一項目しか選択出来ないものにはradioを使った方が良いのでは。
519:Name_Not_Found
08/06/25 06:48:50
Class内のattachEventに関して質問です。
<html><head><script>
this.eTest = function(){
this.prop = 100;
}
this.eTest.prototype.showProp = function(){
alert(this.prop);
}
this.eTest.prototype.setEvent1 = function(){
document.body.attachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.unsetEvent1 = function(){
document.body.detachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.setEvent2 = function(){
this.savedFunc = function(x){return function(){x.showProp()}}(this);
document.body.attachEvent("onclick",this.savedFunc);
}
this.eTest.prototype.unsetEvent2 = function(){
document.body.detachEvent("onclick",this.savedFunc);
}
var inst = new eTest();
</script></head><body>
<input type="button" value="setEvent1" onclick="inst.setEvent1()">
<input type="button" value="unsetEvent1" onclick="inst.unsetEvent1()">
<input type="button" value="setEvent2" onclick="inst.setEvent2()">
<input type="button" value="unsetEvent2" onclick="inst.unsetEvent2()">
</body></html>
1, unsetEvent1でイベント解除できないのはattachしたときの関数オブジェクトとは 別の関数オブジェクトだからという認識でいいんでしょうか?
2, こういった場合setEvent2のようにattachEventに渡す関数オブジェクトを保持しておき、detachEventに同じものを渡すというやり方で問題ありませんか?
3, メモリリークですが、detachした時点でメモリが解放されるということでいいですか?
4, 同じことを実現するのにベターな書き方はありますか?
520:Name_Not_Found
08/06/25 08:03:54
>>519
関数式(関数リテラル)は、そこを実行するごとに新しい関数
オブジェクトを生成することになっている。だから確かに
attachで渡したものをとっておいてdetachにもそれを渡すように
するのが正しそう(試してないけど)。メモリが解放されるのは
あくまでもガベージコレクションのタイミング。リークというのは
ガベージコレクションしても解放されなくなるという意味。
521:Name_Not_Found
08/06/25 10:04:09
ガベージコレクションがいつまでたっても呼び出せなくなるのがIEのリークなんじゃ?
522:Name_Not_Found
08/06/25 11:07:30
>>521
それは言い方がおかしいと思う。その言い方だとリークが起きたら
以後ガベージコレクションが起こらなくなるという意味になると
思うが、そしたらあっという間にメモリが足りなくなるだろう。
「そのリークしたオブジェクトについてガベージコレクション
されない」という意味なら、>>520 でいう「解放」がそれに
相当すると思う。まあ言葉遣いの問題なんだろうけど。
523:Name_Not_Found
08/06/25 11:20:49
デッドロックみたいなもんか
524:Name_Not_Found
08/06/25 12:04:12
>>522
横やりだけど何か違和感だったのでレス。
JavaScriptの場合「参照カウントが0になったらGCされる→メモリが解放される」
だから、「参照が循環するとGCされない(サイ本P.147)→メモリが解放されない」
なので、
>>520
> ガベージコレクションしても解放されなくなる
「GCしても」っていうところがちょっとおかしいかな?と。
525:Name_Not_Found
08/06/25 12:14:50
>>524
JavaScriptのみのオブジェクトの場合、循環参照があっても
解放される。これはマークスイープとかコピー方式のガベージ
コレクションを行っているわけだよね。一方、DOMツリーを経由
した循環参照はリークする。これはDOMツリーからたどれるオブジェクト
については参照カウントを維持していて、それが0より大きいと
「使用中」とみなされる。循環参照してしまうとどこからも指して
ないオブジェクト群でもカウントが1のまま残ってしまうというのが
このリークの本質。で、JavaScriptオブジェクトのガベージ
コレクションを実行しても、カウントが0より大きいものは回収
しないから「ガベージコレクションを実行しても解放されない」
となる。
単純なリファレンスカウントによるガベージコレクション「だけ」
の場合だと確かに>>524の言う通りだけど、この場合はそうじゃない
と理解しているんだがどうかな。
526:Name_Not_Found
08/06/25 12:43:32
俺は使い終わったオブジェクトは極力
delete オブジェクト名;
するようにしてる。
527:Name_Not_Found
08/06/25 12:46:14
GCの動作を理解してなかった
528:Name_Not_Found
08/06/25 18:15:09
勉強になる。てか、よく理解できてない俺はやっぱ自分で消そうと思った。
529:Name_Not_Found
08/06/25 21:13:05
>>526
それって
var obj = newObject;
・・・何か処理・・・
delete obj;
ってしてるってこと?
もしそうならnewObjectへの参照は消えてないよ
530:Name_Not_Found
08/06/25 22:52:29
>>529
参照?どういうことだろう…
var hoge=function(){};
req=new hoge;
req.moge="mogera";
alert(req.moge);
delete req;
alert(req.moge); //ここで、「Can't find variable: req」/「エラー: req is not defined」などのエラーが出る。
ってことは、参照が消えてるってことではないのかな…
531:Name_Not_Found
08/06/25 23:06:54
アホの会話はかみ合わない
532:Name_Not_Found
08/06/26 00:13:15
新規openについて質問します。
IE7+右クリック連携で現在開いているhtmlに対し、「選択範囲にあるURL全てを開く」という内容を考えています。
パラメータが違うURLを「別ウインドウの新しいタブ」にまとめて開きたいのですが、
//処理
for(条件で繰り返し)[
window_handle = window.open(url,target,'');
}
この形式ではIE自体は別プロセスになりますが、1つのタブ内で繰り返し開こうとしてしまいます。
(ポップアップブロックは無効に設定してます)
現在のウインドウ内でも良いので、新しいタブで各URLを開いていくような回避方法がありますでしょうか?
533:Name_Not_Found
08/06/26 00:21:10
targetの代わりに「'_blank'」を指定してみたらどうなる?
534:Name_Not_Found
08/06/26 00:25:04
>>533
for内の条件発生分だけ、IEが新規にopenしてしまいます。
535:Name_Not_Found
08/06/26 00:34:37
>>534
「_blank タブ」でぐぐれ。終了。
536:532
08/06/26 01:05:02
>>535
IE7の仕様ということみたいですので把握しましたです。
ありがとうございました。
537:Name_Not_Found
08/06/26 03:25:36
>>530
それなら消えるね
var req=new hoge; だと消えないというのを言いたかった
538:519
08/06/26 09:39:26
>>520
ありがとうござます。
メモリリークという言葉を使ったのがまずかったですが
クロージャでロックされたローカル変数はdetachしたら
解放されるのかどうかが知りたかっただけです。
プログラマはGCの正確なタイミングは知り得ませんが、
detachすればGCの対象になるのかどうかが知りたいという質問でした。
>>537
DontDelete属性の話でしょうか?
eval評価したスクリプト内のvar付き変数は
現状ではdeleteできるようですが。
ECMAScript 4ではDontDeleteつくらしいですね。
すいません話をattachEventに戻していいですか?
Class内でattachEventを使う場合は>>519よりもベターな書き方はありませんか?
みなさんどうしてるのか教えてください。
あとどの関数がどのイベントにattachされているかを知ることはできますか?
自分で管理するしかない?
539:Name_Not_Found
08/06/26 10:18:57
ベターな書き方と言われても、自分のインスタンスへの参照が欲しいなら
方法はそれくらいしか無いと思うけどなぁ
bindすれば少し読みやすくなるかと
イベント発生時の動作をあとから切り替えたいということなら
eTest.prototype.setEvent1 = function() {
document.body.attachEvent("onclick", (function(x) {
return function() { return x.currentFunc.apply(x, arguments); }
})(this));
};
これでcurrentFuncをすりかえるだけでいい
540:Name_Not_Found
08/06/26 14:17:12
質問いたします。
下記のように2ページ先のフォームにあらかじめ用意しておいた値を
自動入力するスクリプトを組みたいのですが何か良いアイデアは有りませんでしょうか。
IDやパスやフォーム入力値を埋め込んだ自PCのhtml "スタートページ"
↓
↓
企業のログインページ ← "スタートページ"からonloadでログイン
↓
↓
企業のフォームページ ← "スタートページ"のフォーム入力値をセット(この方法が思いつかない)
541:Name_Not_Found
08/06/26 14:42:41
>>540
うん、なるほどね。
あんたがやりたがっていることには企業のなんたらIDを取得しようとそ
の攻略法に血道をあげて研究に余念のない悪の諸先輩方がいますよ。
ま、これはその初歩も初歩のかわいい手口ってとこかな。違いは、あん
たのがピンポイントで悪の諸先輩方のがランダムで攻撃して来るってと
こくらいじゃない。ここでは>>1の回答拒否に当たるかも。
542:Name_Not_Found
08/06/26 14:48:19
>>541
勝手に悪者扱いされて心外なのですが、どうすればなんたらIDとやらを取得する話になるのでしょうかね。
543:Name_Not_Found
08/06/26 15:28:15
>>541
日本語でおk
>>542
エラーくらい読めカス
544:Name_Not_Found
08/06/26 16:07:30
>>543
勝手にカス扱いされて心外なのですが、どうすればエラー出るんでしょうかね。
知ってたら教えてもらえませんか。
545:Name_Not_Found
08/06/26 16:41:07
>>544
てめーのブラウザ名でも添えてggrks
546:Name_Not_Found
08/06/26 16:48:48
URLリンク(detail.chiebukuro.yahoo.co.jp)
547:Name_Not_Found
08/06/26 17:23:24
システムテストか運用時の定期的な動作テストの為か何かと思うが、
さすがにこのご時世で特に説明も無く>>540のように書かれたら、
胡散臭く思うのも仕方無い、というか疑って当然。
548:Name_Not_Found
08/06/26 18:27:26
>>544
とりあえず何でそういうことをやりたいか書いてみたら?
同じ方法でなくともやりたいことはgreasemonkeyとかでできるかもだし
549:Name_Not_Found
08/06/26 22:14:07
>>548
できるかもというか、できるだろというか、やってるよ俺は。
IDマネージャなどを使うより便利。gm_scriptsディレクトリはSVN管理してる。
一般にはそういう拡張(アドオン)を入れるのが手軽なんだろうな。
言うまでもないだろうが、実害が発生し得るカード情報などは、全部手入力だけどな。
550:Name_Not_Found
08/06/26 22:15:35
マクロ組めばいいだろっていう
551:Name_Not_Found
08/06/27 09:31:52
おしえてくだされ。参考にしているスクリプトに以下のような部分が
あるんですが、if文の中のびっくりマーク二つはどういう意味に
なるんでしょうか?一つだと分かるんですが。ググっても分から
ないのでお願いします。
var title_nodes = document.getElementById("btAsinTitle");
if(!!title_nodes){
552:Name_Not_Found
08/06/27 09:46:20
>>551
単なるtypoだろ
553:Name_Not_Found
08/06/27 09:50:20
>>551
真偽値に変換するため
ちなみにifの場合は勝手に判断してくれるから必要ない
554:519
08/06/27 12:14:35
>>539
便利な書き方ですね。参考になります。
イベントを中央管理してクロージャなしで書けそうです。
試行錯誤中ですがなんとかなりそうな雰囲気
555:Name_Not_Found
08/06/27 13:07:20
>>554
参考にしたいのでできたらサンプル見せてもらえませんか
556:Name_Not_Found
08/06/27 15:52:50 iNHOA/2z
あるボタンのonclickに対してイベントを2つ登録して
最初に登録されたイベントの結果によって
次に登録してあるイベントを実行したりしなかったりという制御をしたいのですが
どの様にすればよいのでしょうか?
557:Name_Not_Found
08/06/27 15:55:04
>>556
そのサンプル書いてみて。
558:Name_Not_Found
08/06/27 15:55:53
>>556
できたらサンプル見せてもらえませんか
559:Name_Not_Found
08/06/27 15:56:55
>>557
書けたら質問しないだろ
560:556
08/06/27 16:00:19 iNHOA/2z
<html>
<head>
<script type="text/javascript">
function method1() {
if (confirm("method2を阻止する?")) {
// ここでmethod2の実行を阻止したい。
} else {
;
}
}
function method2() {
alert("method2.");
}
window.onload = function () {
document.getElementById("buttonId").attachEvent("onclick", method2);
document.getElementById("buttonId").attachEvent("onclick", method1);
}
</script>
</head>
<body>
<form>
<input type="button" value="button" id="buttonId">
</form>
</body>
</html>
561:Name_Not_Found
08/06/27 16:06:03
>>557-558
なんなのこいつら
日本語も読めない奴は回線切って首吊れよ
562:Name_Not_Found
08/06/27 16:13:33
何故2つ割り当てるのか分からない
563:Name_Not_Found
08/06/27 16:22:11
>>561
どこまで書けるかってのを知りたかったんじゃないのか
564:Name_Not_Found
08/06/27 16:30:33
>>563
それを知って何になる?
565:Name_Not_Found
08/06/27 17:19:26
IE専なんて試す気にもならないけどこんなところか
function Util(id, type) {
this.obj = typeof id == 'string' ? document.getElementById(id) : id;
if (this.obj) throw 'ハァ(゚д゚)?';
if (!type) throw 'ハァ(゚д゚)??';
this.work = [];
this.obj.attachEvent(type, (function(x) {
var a = x.work;
for (var i = 0, current; current = a[i]; i++) {
if (a[i].call(x.obj)) return;
}
})(this));
}
Util.prototype = {
attach: function(listener, index) {
if (isNaN(index = Number(index))) return this.work.splice(index, 0, listener);
if (typeof listener != 'function') return false;
return this.work.push(listener);
},
detach: function(listener) {
if (typeof listener != 'function') return false;
var i = this.work.indexOf(listener);
if (i < 0) return false;
this.work.splice(i, 1);
return true;
}
};
566:Name_Not_Found
08/06/27 17:19:46
var hogeClick = new Util('hoge', 'onclick');
で hoge のクリックを管理するオブジェクトができる
hogeClick.attach(function() {
return !confirm('バカなの?死ぬの?'); // false を返すとこれより後をキャンセル
})
hogeClick.attach(function() {
alert('そうかい');
})