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

    私的良スレ書庫

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

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    301 : Name_Not - 2010/10/05(火) 18:48:51 ID:??? (+59,+28,-10)
    >>300
    ここってID出さないとダメなんですか?>>1は読みましたけど
    302 : Name_Not - 2010/10/05(火) 19:21:55 ID:??? (-6,-29,-1)
     _, ,_
    ( ゚д゚ )
    303 : Name_Not - 2010/10/05(火) 19:50:02 ID:??? (+52,+29,+0)
    なかなかいいギャグ
    304 : Name_Not - 2010/10/05(火) 21:56:40 ID:??? (+27,+9,-1)
    評価する。
    306 : Name_Not - 2010/10/06(水) 09:35:28 ID:??? (+51,-30,-21)
    JPEGとかのEXIFの情報を表示したくてExifUtil.jshttp://acapulco.dyndns.org/exifutil/ 使おうと
    思ってるんですが、上手くいきません。

    原因調べるにはどうすればよいのでしょうか?
    307 : Name_Not - 2010/10/06(水) 10:47:04 ID:7FErJPcr (+32,+29,-40)
    >>306
    はー、JSでバイナリファイル読むなんてかっちょいいな!
    原因は作者に聞けば。幸い日本人みたいだし。

    自分でソースを追って、誤りがあれば訂正して送ってあげるのが
    利用者のあるべき姿な気はするが。
    308 : Name_Not - 2010/10/06(水) 15:54:03 ID:??? (+64,+29,-41)
    >>306
    作者と同じサンプルでだめなら作者に質問すれば
    そうじゃなきゃ設置ミスでしょ
    firebugとかそこらへんで自分が書いたコードをブレイクすればいい
    309 : 299 - 2010/10/06(水) 17:33:19 ID:??? (+0,-29,-44)
    >>300 >>305
    ありがとうございます。
    この方法ですと、初回checkedはイベントで拾えるのですが、
    一度選択すると、二回目以降は拾えないんですよね…。
    確かに id="hoge1" は value="1" に設定されたので
    二回目に選択しなおしても変化がない…という判定にされるのは分かるのですが。
    310 : Name_Not - 2010/10/06(水) 17:36:21 ID:nOE7wbo/ (-20,-30,-244)
    <li><a href="./"></a></li>をgetElementsByTagNameで'a'を取得し
    上から順番にonmouseoverした時に0,1,2・・・と値を返していきたいけど分かりません。
    お願いします。

    JavaScript
    --------------------------------------------------
    window.onload = function() {
    var aCNT = new Array();
    var aEL = document.getElementsByTagName("a");
    for (var i = 0; i < aEL.length; i++) {
    aCNT[aCNT.length] = i;
    }
    for (var j = 0; j < aEL.length; j++) {
    aEL[j].onmouseover = function() {
    alert(aCNT[j]); ←jだと動かないが数字を入れると動く
    }
    }
    }
    --------------------------------------------------

    xhtml
    --------------------------------------------------
    <ul>
    <li><a href="./">link01</a></li>
    <li><a href="./">link02</a></li>
    <li><a href="./">link03</a></li>
    </ul>
    --------------------------------------------------
    311 : Name_Not - 2010/10/06(水) 18:00:36 ID:??? (+33,-30,-78)
    >>310
    alert(j)にしたら原因が分かるんじゃないかな

    var nl = document.getElementsByTagName('a');
    var n;
    for (var i = 0; n = nl[i]; ++i) {
      n.onmouseover = (function (count) {
        return function () {
          alert(count);
        };
      })(i);
    }
    312 : Name_Not - 2010/10/06(水) 18:22:35 ID:??? (+33,+29,-60)
    >>310
    わかりません。なのにコードの最後は動くってどういうこと?

    for で数字が変わっていってどの要素でも最後の数しか認識しない場合は
    関数でくるんでやるの>>311をよくやるんだけど、他になんか良い方法ってある?
    313 : Name_Not - 2010/10/06(水) 18:46:14 ID:??? (+18,-29,-41)
    >>312
    JSの変数は関数スコープ
    変数jがどこで宣言されているか(どこに属するか)を考えてみれ
    314 : Name_Not - 2010/10/06(水) 18:53:46 ID:??? (+7,-30,-99)
    >for (var j = 0; j < aEL.length; j++) {
    >aEL[j].onmouseover = function() {
    >alert(aCNT[j]); ←jだと動かないが数字を入れると動く

    そりゃうごかねえよalertの行の時点で j の中に数字ははいってないもん
    理由は相棒の>>313参照
    315 : 312 - 2010/10/06(水) 18:58:58 ID:??? (+12,-27,-109)
    >>313
    俺は>>310の何が問題かは理解してるよ?
    過去にこれではまったことがあって、その時は無名関数でくくって実行ってのをやったんだ。
    他にも回避のための手段あるなら知りたいなって思って312を書いた。

    >>314
    ちょっとちがくね?alert(j);なら4返してくれる。
    jはforが回り終わったあとのだから、常に4が入ってる。
    aELは長さ4だから(ここも正しくはないが)、5番目の[4]はundefined
    316 : Name_Not - 2010/10/06(水) 19:03:00 ID:??? (+57,+29,-23)
    クロージャーを使おうとして失敗する例の
    よく有るパターンですねわかります
    319 : Name_Not - 2010/10/06(水) 19:36:23 ID:??? (+1,-29,-67)
    >>318
    ちょww 一応>>312の1行目の文について言い訳しておく。
    「わかりません。」と書いているのに「j【alert(j)】だと動かないが数字【を返すはずのaCNT[j]】を入れると動く」ってのはどういう事
    【】内だと勘違いして、動いているのにわかりませんって言っているように見えたんだ。sマン

    >>317
    さんくす。IEだとforが糞だから後者のほうが良さそうですね。
    320 : Name_Not - 2010/10/06(水) 20:23:20 ID:??? (+33,-29,-18)
    >>311
    関数内で実行したら、メモリリークする…。

    Internet Explorer リーク パターンを理解して解決する
    http://msdn.microsoft.com/ja-jp/library/bb250448%28VS.85%29.aspx
    321 : Name_Not - 2010/10/06(水) 21:35:39 ID:??? (+8,-30,-17)
    >>312
    with ({j;j}) { .... } 良い方法かどうかは知らない

    あとこの例には当てはまらないけど、マウスオーバーされた要素に対して
    何かしたいとかだったら単にthisでいい
    http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0005?page=2
    322 : Name_Not - 2010/10/06(水) 21:37:38 ID:??? (-5,-29,-1)
    >>321
    j;j 訂正→ j:j
    323 : Name_Not - 2010/10/06(水) 23:30:42 ID:??? (+19,-30,-117)
    絞り込み検索の様なものを作成したいと思っています。

    複数のプルダウンメニューから選択して検索ボタンをクリック、
    該当するデータをリスト化(<ul><li>~</li><li>~</li>・・</ul>)して
    htmlに出力するような事をしたいんですが、javascriptで可能でしょうか。

    データはxmlで管理するのがよいかなと考えているので、
    jqueryでxmlを読み込んで、該当するデータだけを出力、
    ってな感じの流れを想定しているんですが。。
    324 : Name_Not - 2010/10/06(水) 23:45:39 ID:??? (+46,+28,+0)
    余裕ですよ
    325 : Name_Not - 2010/10/06(水) 23:46:19 ID:??? (+26,+0,+1)
    >>323
    可能
    326 : Name_Not - 2010/10/06(水) 23:50:09 ID:??? (+92,+28,-4)
    >>320
    それはもう修正されてる…
    http://support.microsoft.com/kb/929874/ja/
    328 : Name_Not - 2010/10/07(木) 00:27:12 ID:??? (+64,+29,-3)
    なにそのきんもーい書き方
    JavaScriptおそろしいね
    329 : Name_Not - 2010/10/07(木) 01:10:34 ID:??? (+9,-25,-34)
    無名関数で追加したイベントって除去できるの?
    330 : Name_Not - 2010/10/07(木) 01:33:39 ID:??? (+13,-30,-79)
    >>329
    できる
    item.addEventListener('mouseover', function (evt) {
    item.remoceEventListener('mouseover', arguments.callee, false);
    }, false);
    331 : Name_Not - 2010/10/07(木) 01:41:17 ID:??? (+33,+1,-19)
    removeがremoceになってるのはおいといて
    イベント発生させないとだめなのか
    それはそれでどうなの
    332 : Name_Not - 2010/10/07(木) 01:57:26 ID:??? (+73,+29,-50)
    >>326
    ありがとう。
    IE6SP3 で修正されたのは知っていたんですが、今でもリークパターンの指摘を受けるのでまだ対応すべきと認識していました。(>>4 でもメモリリークに触れられていたり)
    実際のところ、今はリークパターンを考慮しない人が大半なのかな…。
    333 : Name_Not - 2010/10/07(木) 01:59:53 ID:??? (+36,-30,-69)
    >>331
    どんな方法であれ、addEventListener 時に指定した関数オブジェクトを指定できれば、removeEventListener できる。
    名前付き関数を使えない理由は何なの?
    334 : Name_Not - 2010/10/07(木) 02:02:03 ID:??? (+9,-29,-87)
    >>328
    ES5でもブロックスコープは定義されなかったからね・・・
    letが使えればもっとスマートに書けるんだけど、クロスブラウザ不可

    >>330
    callee、将来的にはどうなるか不透明すぎるのだけがネック
    Strict ModeだとTypeError投げるようになる(実装してる処理系ないけど)

    あとはYコンビネータ実装してゴニョるとか
    335 : Name_Not - 2010/10/07(木) 05:03:05 ID:??? (+62,+29,-7)
    >>333
    レスへのレスにレスしてるだから気にしないで
    336 : Name_Not - 2010/10/07(木) 13:13:35 ID:??? (+3,-30,-154)
    二次元配列の一部を共有するような配列って作れますか?

    具体的には
    var board = new Array(); /* データを入れる */
    var boardinner = new Array(); /* boardのデータの真ん中部分を入れる */

    この時、配列の中身のデータは共有されてて
    boardinner[1][2]=10とかやると、board[2][3]も10になり
    board[2][3]=20とやるとboardinner[1][2]も20になるような感じです。

    今テトリスを作ってて、ブロックが落ちてつもるところまではできて、
    これから行を消すコードを入れる段階なのですが
    壁も含んだボードなので、壁を含まないboardinnerみたいなのが作れると
    記述がシンプルになるなと思ったのですが
    思うように作れません
    337 : Name_Not - 2010/10/07(木) 13:21:47 ID:??? (+3,-30,-49)
    class Test
    var str = "xxx";
    function a(){
    return "[" + this.str + "]";
    }
    function b(){
    return "<" + this.str + ">";
    }

    こんな感じにクラスで書きたいんですけど方法ありませんか?
    338 : Name_Not - 2010/10/07(木) 13:32:25 ID:??? (+3,-30,-48)
    var Test = function() {

    };

    Test.prototype = {
    str: "xxx",
    a: function() {
    return "[" + this.str + "]";
    },
    b: function() {
    return "<" + this.str + ">";
    }
    }
    339 : Name_Not - 2010/10/07(木) 13:34:45 ID:??? (+3,-30,-120)
    こんな感じで書いてください。クラスとかそういうものはありません。
    クラスやらインターフェースやらの導入が計画されていた時期もありましたが、お流れになりました。

    var Test = function () {
    // 初期化処理
    };
    Test.prototype = {
    str: "xxx",
    a: function() { return "[" + this.str + "]" },
    b: function() { "<" + this.str + ">" }
    };

    使い方
    var test = new Test();
    alert(test.a()); // => "[xxx]"
    340 : Name_Not - 2010/10/07(木) 13:46:07 ID:??? (+52,+29,+0)
    カップルになるべき
    341 : Name_Not - 2010/10/07(木) 14:07:37 ID:??? (+11,-29,-59)
    ある場所Aからある場所Bまでの間の、リンクを押すと新しいウィンドウにするという仕組みにしたいのです。
    AとBの間ではJSで外のデータを読み込んでいるのですが、そこのリンクを新しいウィンドウで表示させたいのです。
    自分のサーバーの中のデータではないので、改造できないのです・・

    ヘッド内に<base>を使うと、ページ全体になってしまうし

    AB内のソースもいじれないので、rel="external"もできないし


    何か方法はないでしょうか?
    342 : Name_Not - 2010/10/07(木) 16:03:29 ID:??? (-1,-29,-12)
    読み込んで描きだす部分でtarget=_blankに書き換えればいいだろ。
    それも出来ないっていうなら仕事やめた方がいい。
    343 : Name_Not - 2010/10/07(木) 16:13:45 ID:??? (-1,-29,-7)
    >>341
    CTRL+左クリックかShift+左クリックで開ける
    344 : Name_Not - 2010/10/08(金) 16:54:57 ID:??? (+0,-28,-46)
    >>341
    全然意味がわからんけど、jsでiframe作成してページ内に貼っていて、
    そのフレーム中のリンクをクリックすると新しいウィンドウで開くようにしたいってこと?
    345 : Name_Not - 2010/10/08(金) 19:07:53 ID:??? (+3,-30,-83)
    chromeにて、document.body.clientHeight を使ってブラウザ画面の
    縦の長さを取得していますが、ページによっては、
    ブラウザの長さを取得できない場合があります。
    何か、条件がありますか?
    346 : Name_Not - 2010/10/08(金) 23:18:09 ID:??? (+4,-29,-6)
    doctypeとか表示モードとかかなぁ。
    ぐぐったら結構出てきたよ
    347 : Name_Not - 2010/10/09(土) 04:58:04 ID:??? (+14,-30,-40)
    >>346
    ありがとうございます。とりあえず、それらの単語でぐぐってみたら
    document.documentElement.clientHeight
    というのも使える感じです。仕組みはよくわかっていませんが。
    350 : Name_Not - 2010/10/09(土) 23:42:20 ID:??? (+14,-15,-18)
    >>347
    マジレスしてあげますがそれは5大ブラウザ全てに対応できないから
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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