元スレ+ JavaScript の質問用スレッド vol.77 +
JavaScript覧 / PC版 /みんなの評価 :
651 = :
onError が発生する前にalert( str )まで行ってるんじゃね?
↓実行するとfinish onloadから表示された
<script type="text/javascript">
window.onload = function (){
var str = "";
var imgAry = document.images;
for(var i=0; i<imgAry.length; i++){
var img = new Image();
img.onerror = function(){
str += img.src + "\n";
alert( "from onerror\n" + str );
}
img.src = imgAry[i].src;
}
alert( "finish onload\n" + str);
}
</script>
652 = :
みなさん、いろいろ試していただきありがとうございます。
var str = "";
var imgAry = document.images;
for(var i=0; i<imgAry.length; i++){
var img = new Image();
img.onerror = function(){
str += this.src + "\n";
console.log("途中\n" + str);
}
img.src = imgAry[i].src;
}
alert("結果\n" + str);
console.log("結果\n" + str);
ってやると、アラートではstrが空ですが、コンソール上では以下のような順番で出力
され、結果のstrも期待通りの出力になっていました。
アラート無しでうまくいくようにするためにはonerrorが発生するまで待つような処理にする必要がありそうですが可能でしょうか?
途中
-----------------------------------
途中
-----------------------------------
結果
-----------------------------------
653 = :
まずメモリーリークを直せ
656 = :
宣伝乙
657 = :
どうしてもボタン「すべて選択」が効かない。 教えてください。お願いします。function select()にイベントが届いていないようです。
0<body>
1<div id="imgCheck"></div>
2<script type="text/javascript">
3//@cc_on
4Number.prototype.zero = function(n){ return ('0000000000'+ this).slice(-n); }
5var html = '<form><input type="button" value="すべて選択" click="select(1)"><input type="button" value="すべて解除" onClick="select(0)">';
6for(i=0;i<10;i++){
7var src = 'img'+(i.zero(4))+'jpg';
8html += '<div class="imgbox"><img src="' + src + '.jpg" alt="'+src+'"><div><input type="checkbox" value="'+src+'">'+src+'</div></div>';
9}
10html += '</form>';
11document.getElementById('imgCheck').innerHTML = html;
12document.getElementById('imgCheck')./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'mouseover', chk, false);
13function chk( evt ){
14var node = evt.target || evt.srcElement;
15if( node.nodeName == 'INPUT' && node.type =='checkbox' ) node.checked = !node.checked;
16}
17function select ( bool){
18 var x=document.getElementsByTagName('INPUT');
19
20 for (var i=0;x[i];i++){
21
22 if(!(x[i].type.match('checkbox')) )continue;
23
24 switch(bool){
25 case 1: x[i].checked = true; break;
26 case 0: x[i].checked = false; break;
27 }
28 }
29}
30</script>
658 = :
>イベントが届いていないようです
だろうな。HTMLすらまともに書けてないもの。
659 = :
イベントが届いてないなら届くように書けば良いじゃん
いちおうこれヒントな
660 = :
スレ違いかもしれないんだが、選んだ項目(プルダウンメニュー)によって
自動返信の内容を変えるフリーのメールソフトってないですかね?
PHP、CGIどちらでもかまいません。
661 = :
>>657
onclick="alert(select)"
スコープ順位の高い位置で select が定義されてる。
他に focus, click なんてのもある。
<input type="checkbox" onmouseover="focus(); click();">
名付けには気を遣え。
662 = :
>>657
<html><head></head><body>
<form><input type="button" value="すべて選択" onclick="sel(1);" /><input type="button" value="すべて解除" onclick="sel(0);" /><div id="imgCheck"></div></form>
<script type="text/javascript">
Number.prototype.zero = function(n) { return ('0000000000' + this).slice(-n); };
var addEvent = function(node, type, fn) {
if (document.addEventListener) node.addEventListener(type, fn, false);
else if (document.attachEvent) node.attachEvent('on' + type, function(e) { fn.call(node, e); });
}, sel = function(num) {
var nodes = document.getElementById('imgCheck').getElementsByTagName('input');
for (var i = 0; nodes[i]; i++) (function(node) {
if (num == 0) node.checked = false;
else node.checked = true;
})(nodes[i]);
}, html = '';
for (var i = 0; i < 10; i++) {
var src = 'img' + i.zero(4) + 'jpg';
html += '<div class="imgbox"><img src="' + src + '.jpg" alt="' + src + '" /><div><input type="checkbox" value="' + src + '">' + src +'</div></div>';
}
document.getElementById('imgCheck').innerHTML = html;
addEvent(document.getElementById('imgCheck'), 'mouseover', function(e) {
var t = e.target || e.srcElement;
if (t.nodeName == 'INPUT' && t.type =='checkbox') t.checked = !t.checked;
});
</script>
</body></html>
663 = :
>>661,662
ありがとうございます。
がんばって今からやってみます。
664 = :
何かもういろいろひでえな
665 = :
>>662
えー……
666 = :
>>661,662
なんとかがんばって理解しようとしてみた
・onclick」はonClick」でなくてもOKなんですね
・function(e)がよくわからない
こうかいておけば、あらゆるイベントが起こった際に、これが呼び出される?
eにはイベントオブジェクトが入る?
・元スクリプト>>657は、なぜ機能しなかったのか
・661さんの
スコープ順位の高い位置で select が定義されてる。」
selectの書いた場所がどうならよかったのか
スコープ順位」とは?
ここらへんが謎です
667 = :
HTMLであれば属性名の大文字小文字は区別されない
> >>657は、なぜ機能しなかったのか
5行目「click」じゃなくて「onclick」だろう
・イベント属性(onclick)の中でコンテキスト(this)はその要素
・input要素はselectメソッドを持つ
<input ~ onclick="select(1)">だとinput要素のselectメソッドが呼ばれる
=> onclick="window.select(1)"
=> 関数名を変える
662もそうだが、そのままbool使えばいいだろう。1はtrue、0はfalseだ
というか最初からonclick="select(true)"にしとけばいい
669 = :
それはサイト側でやることなのか?
それと、もしそれでオフになったとしてもJSでやる必要なくね?
672 = :
正直、ただのお節介だと思う。
スペルチェックが必要ない人は最初から切ってる。
textareaを使ったサイトは2chを含め無数にあるのに、
あなたのサイトを訪れたときにだけスペルチェックの赤線が気になって
イライラするOperaユーザーなんて全世界に数人もいない。
逆に、それ以外の全ての人にとっては無駄な記述になる。
サイト側で気にすることじゃないよ。
674 :
現在フォーカス持ってる要素って取得できますか?
675 = :
>>674
document.activeElement
676 = :
>>675
ありがとう。
677 = :
>>667
御礼遅れました。
ありがとう。
679 = :
ブラウザの歴史的ないきさつもあるし、実行環境で用意されてる関数がWeb向きということもあるし、
文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
680 = :
>>679
> 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
他の言語つかったことないな?それとも信者?
そうじゃないというなら他の言語との比較をしてみてよ。C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのか。
681 = :
Lispは使ったことないが、C#, Rubyは経験あるな。
まずプロトタイプベースの利点を理解した上で文句をつけてるのか、
理解せずにただ持ち上げてるというだけで信者扱いしてるのか白状しる。
682 = :
>>681
しらねーよwwそんなの。理解してません。てか、そんなの知らなくてもそれなりのシステムは組めてるからな。
たぶん説明されれば、わかるけど。
さあ、白状してやったから、
C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのかいってみなさい。
683 = :
自由度が高すぎると困る
終わり
685 = :
なんでHTTPでなんでHTMLでなんでFlashなのかって言われても返答に困るようなもんだよなぁ
デファクトスタンダードって強いよね
686 = :
>>678
何かのフォームをイベント処理できるソフトを既存のRubyやPHPで書ける?
セキュアを完全保証できるという前提で
687 = :
>>685でFAだなあ。
あと文法と実行方式とを混同してるアホはちょっと頭冷やした方がいいと思うよ。
サンドボックスって言葉ぐらい知っててもいいと思う。
688 = :
言語仕様とオブジェクトライブラリは分けて語った方がいいぞ
691 = :
http://d.hatena.ne.jp/yukoba/20071108/p1
692 = :
>>682
>たぶん説明されれば、わかるけど。
ダウト。
693 = :
>>692
言語そのものに対する盲目的な信仰を告白するのは
よっぽどの人が言うんでもなけりゃ痛いだけだからやめとけ
694 = :
言語を単純な優劣でしか考えられない人がいるけどスルーで
Webクライアントに向いてるかという話題なのに
695 = :
>>693
信仰?
説明されても判らない程に頭が悪そうだ、って話だ。
言わせんな恥ずかしい。
697 = :
お断りします
698 = :
C 系の言語ばかり使っていたら、考え方が偏っちゃうyo!
699 = :
真理に近づきたくばschemeをやるべし
700 = :
>真理に近づきたくば
いや別に
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.74 + (1001) - [97%] - 2009/12/1 6:08 ○
- + JavaScript の質問用スレッド vol.75 + (1001) - [97%] - 2010/1/23 1:07 ○
- + JavaScript の質問用スレッド vol.76 + (1001) - [97%] - 2010/3/10 4:02
- + JavaScript の質問用スレッド vol.78 + (1001) - [97%] - 2010/6/25 3:53
- + JavaScript の質問用スレッド vol.79 + (1001) - [97%] - 2010/9/11 6:50
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.107 + (1001) - [95%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.117 + (1009) - [95%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.127 + (160) - [95%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.127 + (1001) - [95%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.137 + (1003) - [95%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.99 + (1001) - [95%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.95 + (1001) - [95%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.98 + (1001) - [95%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.93 + (1001) - [95%] - 2011/12/10 18:31
トップメニューへ / →のくす牧場書庫について