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

    私的良スレ書庫

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

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    151 : Name_Not - 2014/06/02(月) 16:17:25.32 ID:???.net (+65,+29,-14)
    >>147
    何もしなくていいよ
    152 : 147 - 2014/06/02(月) 16:22:53.17 ID:???.net (+0,-28,-4)
    CSSにemという単位がありました
    ありがとうございました
    153 : Name_Not - 2014/06/02(月) 16:46:31.11 ID:???.net (+5,-29,-24)
    >>149
    海外のプログラマーもmizchiのブログをチェックするぐらい有名だし
    mizchiが働いてる企業も有名
    154 : Name_Not - 2014/06/02(月) 18:36:41.69 ID:???.net (-1,-29,-27)
    mouseoverなどが設定されている巨大なテーブルを表示したら
    既存のpopoverなどの動作がすごく遅くなりました
    どうしたらいいでしょうか?
    155 : Name_Not - 2014/06/02(月) 18:39:09.11 ID:???.net (+6,-21,-42)
    ちなみに巨大といっても200行くらいです
    jqueryプラグインなので内部で何してるかしりませんが
    mouseの動きに追随して行の色が変わるのでmouseoverと思われます
    156 : Name_Not - 2014/06/02(月) 19:06:48.43 ID:???.net (+57,+29,-42)
    そのプラグインを使わない
    自分で修正したりカスタマイズしたり検索して調べられない人は人様のプラグインを使うべきではない
    157 : Name_Not - 2014/06/02(月) 20:02:33.71 ID:???.net (+36,-29,-52)
    テーブル毎に設定しているmouseoverから
    ひとつの要素にmousemoveを設定して、マウス座標からマスの位置を計算してみてはどうでしょうか
    158 : Name_Not - 2014/06/02(月) 22:14:29.76 ID:???.net (-1,-29,-1)
    >>157
    mouseoverも一つの要素で十分だよ
    160 : Name_Not - 2014/06/03(火) 02:26:39.04 ID:???.net (+32,-1,-50)
    そのメソッドからは新しいオブジェクトを返して、
    呼び出しもとでそれを上書きしたい変数に代入する
    161 : Name_Not - 2014/06/03(火) 05:35:41.36 ID:???.net (+62,+29,-35)
    ライブラリ関連の質問は、ライブラリ用のスレでやるべき
    その方が、情報が分散しないので調べやすく、効率もいい

    このスレで、ライブラリ関連の質問を扱う、利点がない
    情報を分散させるな
    自分を情報に適応させればいいだけ
    162 : Name_Not - 2014/06/03(火) 06:27:03.66 ID:???.net (+17,-30,-266)
    >>160
    それだとオブジェクトが複数の場所から参照されている場合に同期しなくなる

    >>159
    一般的には
    元のオブジェクト A を参照するオブジェクト B を作って、
    (1) コード内で A を利用している所はすべて B に置換
    A へのメンバアクセスはすべて Bを経由
    (2) 「オブジェクトそのものを変える」ときには Bの中のAへの参照を別オブジェクトに変える

    具体的には
    (1) には prototype 継承が利用できる
    return new A

    B = {}; B.__proto__ = A; return B に変える
    その場合、 (2)も単に B.__proto__ = C

    (__proto__ 未サポート実装にも対応させる場合は等価なコード 以下略)
    163 : Name_Not - 2014/06/03(火) 07:13:41.38 ID:???.net (+57,+29,-9)
    スウィフト登場でJavaScript死亡って聞きましたがマジですか?
    164 : Name_Not - 2014/06/03(火) 07:25:08.97 ID:???.net (+62,+29,-24)
    >>157
    行の高さが固定ではないので計算が難しいですが
    固定にしたら計算量を減らせそうです
    ありがとうございました
    165 : Name_Not - 2014/06/03(火) 07:55:13.42 ID:???.net (+56,+28,-47)
    JSはlodashの機能をネイティブに取り込んでいったらまだまだ戦える
    166 : Name_Not - 2014/06/03(火) 16:16:11.01 ID:VSsQ6kDA.net (+27,+29,-5)
    >>162
    なかなか手間が掛かるんですね……
    ありがとうございました!
    167 : Name_Not - 2014/06/03(火) 17:40:18.35 ID:???.net (-1,-29,-12)
    Swiftは構文がCとは大分違ってて若干気持ち悪いな…
    JavaScript以外はTypeScriptがあれば十分だ
    168 : Name_Not - 2014/06/03(火) 18:38:52.41 ID:???.net (+13,-30,+0)
    ここに長くいる人に質問なんだが

    今、XMLHttpRequestで今まで経験した事ないバグに悩まされている…
    それでここで過去に同じような報告あったか知ってる人いないかな?と思い投稿に至る。

    バグは条件が決まってて…説明長くなるけどすまん

    まず、ロリポップのサーバーでしか起きない。
    自分のPC上に構築したローカル環境と無料サーバーatpagesでは起きなかった。

    プログラム構成は
    AファイルからJavascriptでXMLHttpRequestを作り、
    XMLHttpRequest.sendのPOSTで同じディレクトリにあるPHPにデータ送るだけ。
    送るデータは「<img src="../" width="" class="" alt="" />」この文字をencodeURIComponentでエスケープした物。

    発生するバグは上記のデータ1つだと正常にPHPが呼ばれるけど
    「<img src="../" width="" class="" alt="" /><img src="../" width="" class="" alt="" />」のように2つ以上にすると
    XMLHttpRequest.statusに「403 サーバーからアクセスを拒否された」が返ってきてPHPにまでデータが届かない…。
    それで色々試した所、上のタグの「../」部分をどちらか片方だけ返ると403にならないで200(正常)になることが判明。
    例えば「../」ではなく「.,/」(ドットを1個カンマに変更)に変えるとかで動くんだ…。
    じゃあと思いimgタグとか外して「../../」とかにてもバグらない。
    どうしても上のimgタグ2列以上のデータのままじゃないとバグらない不思議。
    ドットが悪いのかと思い、ドットを正規表現で「%2e」に変換しても何故か403!
    しっかり変換されてることは確認済み。

    送信する文字数過多でサーバーからはじかれてる?とも思ったがこれは大丈夫だった。
    「11111111111111111111」というデータを上のバグるデータの8倍の長さで送信したけど403にはならなかった。

    ブラウザはIE8、Chorme34.0.1847.137(最新)、Firefox29.0.1で試したが全部同じ

    実データはバグるパターンのデータが必要なので悩んでる・・・。
    どうも一定条件そろった時だけ出る未知のバグな気がして相当悩んでる・・・。過去に同じ事で悩んだ人ここにいなかったかな?
    169 : Name_Not - 2014/06/03(火) 18:49:32.16 ID:???.net (-29,-7,-13)
    現象見るとサーバサイドの問題に見えるけど
    webサーバのエラーログ見れるなら見てみたら
    170 : 168 - 2014/06/03(火) 19:45:11.27 ID:???.net (+66,+29,-123)
    >>169
    やっぱりサーバーっぽいか…
    今確認したらHTTPリクエストのログまでは見れたけどエラーログまで見る機能はないっぽい…
    HTTPリクエストのログの方にも403が表示されてるだけで情報となりそうな物はなかった

    ちなみに今妄想で疑っているのが
    ロリポップサーバーだけウイルスチェックフィルターみたいのがあって送信されてくるデータをチェックしてて
    下のimgタグ2個以上の内容が偶然そのフィルターにひっかかるのかなーとか思ってる…
    171 : Name_Not - 2014/06/03(火) 19:50:42.59 ID:???.net (+57,+29,-4)
    俺もそう思った
    変な攻撃と思われてるのかも
    172 : Name_Not - 2014/06/03(火) 19:59:50.05 ID:???.net (+13,-30,-26)
    >>170
    適当なロリポ鯖に「?a=../../"""」でアクセスしてみると403になるな・・
    他にも?a='--でもなった
    とりあえずWAF設定OFFにしてみろ
    173 : Name_Not - 2014/06/03(火) 20:00:38.55 ID:???.net (+5,-29,-18)
    なにかしら他の形式(Base64とか)にエンコードして、サーバ側でデコードするとかはできないん?
    174 : Name_Not - 2014/06/03(火) 21:02:43.47 ID:???.net (+4,-29,-179)
    >>172
    おおおおお!!ずばりそれだ!助かった!
    WAFの存在知らなかったわ…そして設定変更できるのも今知った…こんな機能があったのだな
    WAFの所にもログ表示があって見事に弾かれてた…恥ずかしい限りだ、、
    それにしてもURLエンコードかかってる状態でも弾くとはなんて強力な機能
    ちなみに「../ ../ w>」でも「%2e%2e%2F%20%2e%2e%2F%20w%3E」でも弾かれる

    原因わかってスッキリした
    みんなありがとう!

    >>173
    エンコードしても弾かれるんだこれ
    でも修正案のヒントになったのでありがとう!
    引っかかるデータを一時的に全角文字に変換しPHP側で半角に戻すやり方おもいついた
    WAFをONのまま運用したほうがセキュリティーは高くなるし

    お騒がせしました
    175 : Name_Not - 2014/06/03(火) 21:32:36.02 ID:???.net (-1,-29,-63)
    twitter.comではconsole.logが使えないんですけど
    たぶんwindow.consoleを上書きされてるからなんでしょうが
    これを使えるようにする方法を教えてください
    176 : Name_Not - 2014/06/03(火) 23:07:03.31 ID:???.net (+55,-30,-56)
    質問です
    re =RegExp('a|b|c')
    while( re..exec(str) )でマッチした部分がaだった場合のみreplaceする方法ってありますか?
    execの結果を利用できると助かるんですが
    177 : Name_Not - 2014/06/03(火) 23:11:58.49 ID:???.net (+30,-29,-1)
    str.replace(/a/g, 'b');
    178 : Name_Not - 2014/06/03(火) 23:27:04.29 ID:???.net (+10,-30,-45)
    >>176
    var str = "abcdef";
    var re = RegExp('a|b|c') ;
    var func = function(str) {return (str == "a") ? "0" : str};
    str = str.replace(re, func); // str => 0bcdef
    179 : Name_Not - 2014/06/04(水) 00:43:36.24 ID:???.net (+38,-30,-36)
    >>178
    冗長で気持ち悪い。

    var str = "abcdef";
    str = str.replace(/a|b|c/g, function(ch) {
     return (ch == "a") ? "0" : str;
    });
    180 : Name_Not - 2014/06/04(水) 00:47:37.25 ID:???.net (+28,+0,-30)
    マッチした部分がaだった場合のみなのにaもbもcもマッチしてないかそれ
    181 : Name_Not - 2014/06/04(水) 01:01:45.19 ID:???.net (+69,+29,-4)
    >>179
    わかりやすさ優先させた
    お前こそなんでstr返してるんだ
    182 : Name_Not - 2014/06/04(水) 01:11:26.86 ID:???.net (+46,-30,-58)
    >>181
    元のコードがわかりにくいから間違えたw
    近い場所で同じ変数名使いまわすんじゃねーよ。

    var str = "abcdef";
    str = str.replace(/a|b|c/g, function(ch) {
     return (ch == "a") ? "0" : ch;
    });
    183 : 176 - 2014/06/04(水) 01:19:36.51 ID:???.net (+60,+27,-32)
    >>177-182
    ありがとうございますreplaceの引数の関数でこんないろいろできるとは知りませんでした
    こっちでやってみます
    184 : Name_Not - 2014/06/04(水) 03:17:43.35 ID:???.net (+66,+29,-4)
    >>182
    そういやそうだごめん
    先に関数内作って>>176に合わせたらこんな事に
    185 : Name_Not - 2014/06/04(水) 07:52:34.40 ID:???.net (+9,-30,-195)
    Greasemonkey で Web版Twitterのツイート内容の変換を試みています。

    $("body").on("mouseover","div.ProfileTweet.u-textBreak.js-tweet.js-stream-tweet.js-actionable-tweet", function(){
    var elm = $(this);
    elm.html( replaceAll(elm.html(), wordMap) );
    });
    //replaceAll は自作関数です

    各ツイート(後からAjaxで追加されたものも含む)の変換は mouseover で発動します。
    ただ本当にやりたいのは追加されたら勝手に発動して欲しいのです。
    タイマー以外のスマートな方法で実現できないでしょうか?
    186 : Name_Not - 2014/06/04(水) 08:04:36.42 ID:???.net (+10,-30,-127)
    >>185
    普通にDOMの MutationObserver でできない?

    developer.mozilla.org/ja/docs/Web/API/MutationObserver

    に例が載ってるよ
    187 : Name_Not - 2014/06/04(水) 09:14:00.38 ID:???.net (+4,-30,+0)
    var tweetSelector = "div.ProfileTweet.u-textBreak.js-tweet.js-stream-tweet.js-actionable-tweet";

    function twitterTransform(elm){
    elm.html( replaceAll(elm.html(), wordMap) );
    elm.click(function() {
    window.open("https://twitter.com/"+$(this).attr("data-screen-name")+"/status/"+$(this).attr("data-item-id"));
    return false;
    });
    }

    $(tweetSelector).each(function(){
    twitterTransform($(this));
    });

    new MutationObserver(function(arr,mo){
    for(var i=0; i<arr.length; ++i){
    var children = arr[i].addedNodes;
    for(var j=0; j<children.length; ++j){
    twitterTransform( $(children[j]).find(tweetSelector) );
    }
    }
    }).observe($("div.GridTimeline-items")[0], { childList: true });


    >>186 ありがとうございます。できました。
    単語置換の他にツイートクリック時に別タブで開けるようにもなりました。
    188 : Name_Not - 2014/06/04(水) 13:28:06.19 ID:???.net (+61,+22,-38)
    すいません便乗ですいません
    twitterにajaxで取得する場合って秒数は1秒ごとってやばいですか?
    189 : Name_Not - 2014/06/04(水) 13:33:49.15 ID:???.net (+21,-14,-3)
    >>188
    TwitterのAPIはそもそも回数制限あるだろ
    190 : Name_Not - 2014/06/04(水) 16:06:14.93 ID:???.net (+3,-30,-121)
    jqueryで、削除時ハンドラみたいなことが出来ることを知りました

    $.when($('#test').remove()).then(function(){
    console.log('removed');
    });
    $('#test').remove();

    という感じに使えます。これって内部的にどういう処理してるんですか?
    191 : Name_Not - 2014/06/04(水) 16:13:11.45 ID:???.net (+57,+29,-3)
    なんか思ってたのと違ったようです
    失礼しました
    192 : Name_Not - 2014/06/04(水) 16:14:52.54 ID:???.net (+64,+29,-16)
    ある要素が削除された時に指定したコールバックを実行する
    ってやりたいんですが、どうやればいいですか?
    193 : Name_Not - 2014/06/04(水) 19:33:11.07 ID:???.net (+11,-30,-118)
    >>192
    html
    <div id="test">
    <div id="hoge">hogehoge</div>
    </div>

    js
    $('#test').bind('DOMNodeRemoved',function() { alert(1); });

    // $('#hoge').remove();
    194 : Name_Not - 2014/06/04(水) 19:41:26.39 ID:???.net (+57,+29,-2)
    こんな便利なイベントがあったんですね
    ありがとうございました
    195 : Name_Not - 2014/06/04(水) 20:43:44.09 ID:???.net (-1,-29,-42)
    DOMNodeRemoved、またブラウザ依存しそうなイベントだなw
    196 : Name_Not - 2014/06/04(水) 23:01:30.40 ID:???.net (+64,+28,-12)
    ===を使うのは、比較対象が引数など型が自明じゃない場合だけの方がいいですか?
    それとも必ず===の方がいいですか?
    197 : Name_Not - 2014/06/04(水) 23:20:09.22 ID:???.net (+67,-22,-7)
    >>196
    面倒なので全部===にしてるな
    ===だと都合が悪いときだけ==にする

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

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


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