のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,063,069人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ+ JavaScript の質問用スレッド vol.77 +

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    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 = :

    >真理に近づきたくば
    いや別に


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について