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

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

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

    751 = :

    evalの話題は荒れるからやめようぜ

    752 = :

    eval 使えば >>714 も簡単にできる

    753 = :

    >>714を使う理由がない

    754 = :

    evalはお遊びにしか使えないな

    755 = :

    htmlエレメントをstyleも込で作れる関数の中で使ってる。
    eval('elem.' + attr[i][0] + '=attr[i][1]');
    evalのおかげでイベント用の関数もそのまま引数として渡せるようになった。

    757 = 742 :

    varって書く意味がわかってるなら別にどちらでも。
    よくわからないなら書いた方が。

    758 = :

    type付けよう

    760 = :

    クロスサイトスクリプティング対策として、以下のような関数を作成しました。

    function strToHtml( str ) {
      str = str.replace( /&/g, "&" );
      str = str.replace( /</g, "<" );
      str = str.replace( />/g, ">" );
      str = str.replace( /"/g, """ );
      str = str.replace( /'/g, "'" );

      return str;
    }

    function htmlToStr( html ) {
      html = html.replace( /'/g, "\'" );
      html = html.replace( /"/g, "\"" );
      html = html.replace( />/g, ">" );
      html = html.replace( /</g, "<" );
      html = html.replace( /&/g, "&" );

      return html;
    }

    もっと効率の良い書き方はないものでしょうか?

    761 = :

    すみません。
    ここもHTMLだということを忘れてました。

    function strToHtml( str ) {
      str = str.replace( /&/g, "&amp;" );
      str = str.replace( /</g, "&lt;" );
      str = str.replace( />/g, "&gt;" );
      str = str.replace( /"/g, "&quot;" );
      str = str.replace( /'/g, "&apos;" );

      return str;
    }

    function htmlToStr( html ) {
      html = html.replace( /&apos;/g, "\'" );
      html = html.replace( /&quot;/g, "\"" );
      html = html.replace( /&gt;/g, ">" );
      html = html.replace( /&lt;/g, "<" );
      html = html.replace( /&amp;/g, "&" );

      return html;
    }

    全角アンパサンドは半角だと思ってください。

    762 = :

    >>760
    5つの文字だけしかやらないんならXSS対策になりませんよ

    763 = :

    >>762
    他にどんな文字があるのですか?

    765 = :

    >>763
    \0

    766 = :

    >>763
    \0を空に置換する

    768 = :

    ちなみに\の置換で\0は消せないのでよろしく

    769 = :

    >>765-766
    ありがとうございました。
    ヌル文字の置換も行うようにします。
    合計6種類の文字の置換ですね。

    771 = :

    俺みたいなカス初心者には参考になるな

    772 = :

    >>768,>>770
    ありがとうございます。
    ヌルバイト攻撃は知りませんでした。
    勉強します。

    773 = :

    おいサロゲートペア無視するなよww

    774 = :

    自己レス、サロゲートペアはブラウザで処理する限りは大丈夫らしい、
    http://webos-goodies.jp/archives/51072404.html

    776 = :

    <input id="t1" type="text" size="14">
    var t1=document.getElementById("t1");
    テキストボックスに入力した値をt1とした場合
    このt1が半角数字か、半角数字以外かを判断するには
    どうすればいいのですか?

    777 = :

    if(/^\d+$/.test(t1.value)) alert('半角数字でつ');

    778 = :

    >>777
    ありがとうございました。

    779 = :

    >>733 >>735 さん
    二人のアドバイスのおかげで、思ったような挙動になりました。
    formにonsubmitがあったことや、その場合にsubmitを利用すれば良いことを知らなかったので
    どちらかのアドバイスだけでは、解決するまで余分に時間が掛かっていたかもしれません。
    有用な情報を教えていただき、本当に有り難うございました。

    remove() {
    // input name="name" に、value を設定
    // 送信可能な状態かを判断
    // 戻り値として true か false を返す
    }

    <form method="post" onsubmit="return remove()">
    <input type="text" name="id"/>
    <input type="hidden" name="name"/>
    <input type="hidden" name="type" value="remove"/>
    <button type="submit">削除</button>
    </form>

    783 = :

    >>755

    var attr = [
    { className : "cls1 bgcol1", id : "id1", style : { display : "none" } },
    { className : "cls2 bgcol2", id : "id2", style : { position : "absolute", top : "10px", left : "3px" } },
    { className : "cls3 bgcol3", id : "id3", click : funcClickId3 }
    ];

    もしこの程度のものだとしたら、どう見てもevalいらんぞ。
    これ以上のものがあるかは、今すぐには思いつかんが。

    786 = :

    ゲームなんかで使う画像を全て開いたときに先読みする場合って

    var img_src = ['1.jpg','2.jpg','3.jpg','4.jpg','5.jpg'];
    var p = 0;
    var img_obj = {};
    function load() {
        if (!img_obj[img_src[p]]) {
            img_obj[img_src[p]] = new Image(img_src[p]);
            img_obj[img_src[p]].onload = p++;
            return true;
        } else {
            return false;
        }
    }
    while (load()) {}

    こんな感じでいいんですか?

    789 = :

    >>786
    そのonloadには何を入れている?w

    キャッシュされてるか確認するには、ブラウザのキャッシュ削除しておいて、
    その処理実行しただけで画像がキャッシュフォルダにくるか見ればいい。

    "JavaScript 画像 先読み"でググればいろいろ出てるが、
    ブラウザによっては多数同時に読みに行くと止まるみたいだし、
    処理をブロックされにくくするならこんな感じ?

    var img_src = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg'];

    function img_load(arr) {
    var i = arr.length;
    while (i--){ setTimeout(load(arr[i]), 0); }

    function load(src) {
    return function() {
    var obj = new Image();
    obj.src = src;
    }
    }
    }

    img_load(img_src);

    791 = :

    もしかして、JavaScript ではヌルバイト攻撃に対処不能ですか?
    探しても対応策の情報がでてこないのです。
    JavaScript の処理中で影響がなければ、サーブレット側で処理ですかね?

    792 = :

    >>759,783
    たしかに、[.]が入るのだけ注意すればevalいらんね。
    作ったのが大分前だから1行でかけることに惹かれたんだと思うw
    attrは[['id', 'tst_1'], ['style.color', 'black'], ["onclick", function(){alert(this);}]]こんなかんじ。

    793 = :

    >>789
    src入れないとだめですよね
    ほんとすみません変なコード書いちゃって

    そしてコードどうもありがとうございます
    詳しい説明助かります
    早速試してみますね

    794 = :

    >>792
    evalなしでも一行で書けるよ
    正規化に拘るのならどっちにしろ attr[i][0] 検査しないと
    elem[attr[i][0]] = attr[i][1];

    796 = :

    【審議中】
        ∧,,∧  ∧,,∧
     ∧ (´・ω・) (・ω・`) ∧∧
    ( ´・ω) U) ( つと ノ(ω・` )
    | U (  ´・) (・`  ) と ノ
     u-u (l    ) (   ノu-u
         `u-u'. `u-u'

    797 = :

    いや、eval使いこなしてる奴はevaってもいいかもしれん

    798 = :

    なんか最近ここで質問に答えた時とその反応が気持ちよくて
    教師になっちゃおうかなって思ったりする

    800 = :

    ウイルス作成罪ワロタw

    >改正案は、ウイルス(不正指令電磁的記録)を、「人が電子計算機を使用するに際してその意図に沿うべき動作をさせず、
    >又はその意図に反する動作をさせるべき不正な指令を与える電磁的記録」と規定。

    グーグルクロームの情報送信も教えなかったらウイルスじゃねーかよw
    電子レンジで猫を温めてはいけないレベル


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

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


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