私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.77 +

みんなの評価 :
レスフィルター : (試験中)
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>
↓実行すると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>
みなさん、いろいろ試していただきありがとうございます。
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が発生するまで待つような処理にする必要がありそうですが可能でしょうか?
途中
-----------------------------------
途中

-----------------------------------
結果

-----------------------------------
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が発生するまで待つような処理にする必要がありそうですが可能でしょうか?
途中

途中


結果


どうしてもボタン「すべて選択」が効かない。 教えてください。お願いします。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>
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>
>イベントが届いていないようです
だろうな。HTMLすらまともに書けてないもの。
だろうな。HTMLすらまともに書けてないもの。
スレ違いかもしれないんだが、選んだ項目(プルダウンメニュー)によって
自動返信の内容を変えるフリーのメールソフトってないですかね?
PHP、CGIどちらでもかまいません。
自動返信の内容を変えるフリーのメールソフトってないですかね?
PHP、CGIどちらでもかまいません。
>>657
onclick="alert(select)"
スコープ順位の高い位置で select が定義されてる。
他に focus, click なんてのもある。
<input type="checkbox" onmouseover="focus(); click();">
名付けには気を遣え。
onclick="alert(select)"
スコープ順位の高い位置で select が定義されてる。
他に focus, click なんてのもある。
<input type="checkbox" onmouseover="focus(); click();">
名付けには気を遣え。
>>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>
<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>
>>662
えー……
えー……
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)"にしとけばいい
> >>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)"にしとけばいい
それはサイト側でやることなのか?
それと、もしそれでオフになったとしてもJSでやる必要なくね?
それと、もしそれでオフになったとしてもJSでやる必要なくね?
>>670
レスどうもです。
自分の作ったHTML上で使えるツールを使う時だけOFFにしたかったのですが、
使う人に対して「どうしても気になるならこういう風に設定して」と説明文を書いておくしか無いですかね。
レスどうもです。
自分の作ったHTML上で使えるツールを使う時だけOFFにしたかったのですが、
使う人に対して「どうしても気になるならこういう風に設定して」と説明文を書いておくしか無いですかね。
正直、ただのお節介だと思う。
スペルチェックが必要ない人は最初から切ってる。
textareaを使ったサイトは2chを含め無数にあるのに、
あなたのサイトを訪れたときにだけスペルチェックの赤線が気になって
イライラするOperaユーザーなんて全世界に数人もいない。
逆に、それ以外の全ての人にとっては無駄な記述になる。
サイト側で気にすることじゃないよ。
スペルチェックが必要ない人は最初から切ってる。
textareaを使ったサイトは2chを含め無数にあるのに、
あなたのサイトを訪れたときにだけスペルチェックの赤線が気になって
イライラするOperaユーザーなんて全世界に数人もいない。
逆に、それ以外の全ての人にとっては無駄な記述になる。
サイト側で気にすることじゃないよ。
>>674
document.activeElement
document.activeElement
質問
なんでhtml内のうめこみスクリプトってjavascriptのみなの?
pythonとかjavaとかの文法がつかえれば便利だと思うんだけど
javascriptだけはなぜか不動の位置にあるのな。
たしかに、RailsとかPHPとかでjavascriptを動的に生成すればいいんだけど
それならRubyとかPHPの文法でいいじゃん、なんでjavascriptっていう違う言語に変換してるのか
よくわからん。
なんでhtml内のうめこみスクリプトってjavascriptのみなの?
pythonとかjavaとかの文法がつかえれば便利だと思うんだけど
javascriptだけはなぜか不動の位置にあるのな。
たしかに、RailsとかPHPとかでjavascriptを動的に生成すればいいんだけど
それならRubyとかPHPの文法でいいじゃん、なんでjavascriptっていう違う言語に変換してるのか
よくわからん。
ブラウザの歴史的ないきさつもあるし、実行環境で用意されてる関数がWeb向きということもあるし、
文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
>>679
> 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
他の言語つかったことないな?それとも信者?
そうじゃないというなら他の言語との比較をしてみてよ。C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのか。
> 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
他の言語つかったことないな?それとも信者?
そうじゃないというなら他の言語との比較をしてみてよ。C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのか。
Lispは使ったことないが、C#, Rubyは経験あるな。
まずプロトタイプベースの利点を理解した上で文句をつけてるのか、
理解せずにただ持ち上げてるというだけで信者扱いしてるのか白状しる。
まずプロトタイプベースの利点を理解した上で文句をつけてるのか、
理解せずにただ持ち上げてるというだけで信者扱いしてるのか白状しる。
>>681
しらねーよwwそんなの。理解してません。てか、そんなの知らなくてもそれなりのシステムは組めてるからな。
たぶん説明されれば、わかるけど。
さあ、白状してやったから、
C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのかいってみなさい。
しらねーよwwそんなの。理解してません。てか、そんなの知らなくてもそれなりのシステムは組めてるからな。
たぶん説明されれば、わかるけど。
さあ、白状してやったから、
C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのかいってみなさい。
なんでHTTPでなんでHTMLでなんでFlashなのかって言われても返答に困るようなもんだよなぁ
デファクトスタンダードって強いよね
デファクトスタンダードって強いよね
IEならレジストリいじって好きなエンジン呼べるはず
ActivePerl入れればtext/perlscript使えるんじゃなかったっけ
ActivePerl入れればtext/perlscript使えるんじゃなかったっけ
言語を単純な優劣でしか考えられない人がいるけどスルーで
Webクライアントに向いてるかという話題なのに
Webクライアントに向いてるかという話題なのに



類似してるかもしれないスレッド
- + 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
トップメニューへ / →のくす牧場書庫について