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

    私的良スレ書庫

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

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

    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
    751 : Name_Not - 2011/06/16(木) 20:43:05.37 ID:??? (+53,+25,-14)
    evalの話題は荒れるからやめようぜ
    752 : Name_Not - 2011/06/16(木) 21:08:30.83 ID:??? (+11,-22,-13)
    eval 使えば >>714 も簡単にできる
    753 : Name_Not - 2011/06/16(木) 21:16:13.77 ID:??? (+53,+21,+0)
    >>714を使う理由がない
    754 : Name_Not - 2011/06/16(木) 21:29:50.52 ID:??? (+42,+19,-13)
    evalはお遊びにしか使えないな
    755 : Name_Not - 2011/06/16(木) 22:01:22.79 ID:??? (+36,-30,-47)
    htmlエレメントをstyleも込で作れる関数の中で使ってる。
    eval('elem.' + attr[i][0] + '=attr[i][1]');
    evalのおかげでイベント用の関数もそのまま引数として渡せるようになった。
    756 : Name_Not - 2011/06/16(木) 22:23:34.75 ID:??? (-2,-30,-22)
    <script>
    a = 1;

    function a(){
    alert(a);
    }
    </script>

    aにvarをつけたほうがいいですか?
    757 : Name_Not - 2011/06/16(木) 22:31:59.93 ID:mr/Ai4o/ (+27,+29,-18)
    varって書く意味がわかってるなら別にどちらでも。
    よくわからないなら書いた方が。
    758 : Name_Not - 2011/06/16(木) 22:44:21.54 ID:??? (+8,-14,+0)
    type付けよう
    759 : Name_Not - 2011/06/16(木) 22:51:16.19 ID:??? (-24,-4,-12)
    >>755
    eval 使う必要ないような
    760 : Name_Not - 2011/06/16(木) 23:12:15.24 ID:??? (+31,-30,-113)
    クロスサイトスクリプティング対策として、以下のような関数を作成しました。

    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 : Name_Not - 2011/06/16(木) 23:15:09.09 ID:??? (+3,-30,-164)
    すみません。
    ここも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 : Name_Not - 2011/06/16(木) 23:26:35.24 ID:??? (+85,+19,-17)
    >>760
    5つの文字だけしかやらないんならXSS対策になりませんよ
    763 : Name_Not - 2011/06/16(木) 23:33:16.37 ID:??? (+72,+29,-4)
    >>762
    他にどんな文字があるのですか?
    764 : Name_Not - 2011/06/17(金) 00:00:14.50 ID:??? (-1,-29,-40)
    サロゲートペアとかブラウザの実装はどうなんだろう、正規化されるのかな
    まあテキストとして扱うなら普通はtextContentなりdocument.createTextNodeで
    765 : Name_Not - 2011/06/17(金) 00:05:25.04 ID:??? (+15,-29,+0)
    >>763
    \0
    766 : Name_Not - 2011/06/17(金) 00:08:10.09 ID:??? (+2,-29,-5)
    >>763
    \0を空に置換する
    767 : Name_Not - 2011/06/17(金) 00:08:13.17 ID:??? (-1,-30,-23)
    >>765
    ヌル文字をエスケープするのですか?
    どんな文字に置換するのか想像もつかないですね。

    str = str.replace( /\0/g, "" );
    768 : Name_Not - 2011/06/17(金) 00:08:34.76 ID:??? (+31,-29,-10)
    ちなみに\の置換で\0は消せないのでよろしく
    769 : Name_Not - 2011/06/17(金) 00:09:35.00 ID:??? (+8,-21,-15)
    >>765-766
    ありがとうございました。
    ヌル文字の置換も行うようにします。
    合計6種類の文字の置換ですね。
    771 : Name_Not - 2011/06/17(金) 00:12:35.65 ID:??? (+57,+29,-16)
    俺みたいなカス初心者には参考になるな
    772 : Name_Not - 2011/06/17(金) 00:12:55.57 ID:??? (+68,+29,-16)
    >>768,>>770
    ありがとうございます。
    ヌルバイト攻撃は知りませんでした。
    勉強します。
    773 : Name_Not - 2011/06/17(金) 00:21:42.07 ID:??? (+52,+29,+0)
    おいサロゲートペア無視するなよww
    774 : Name_Not - 2011/06/17(金) 00:29:38.89 ID:??? (+57,+29,-21)
    自己レス、サロゲートペアはブラウザで処理する限りは大丈夫らしい、
    http://webos-goodies.jp/archives/51072404.html
    776 : 564 - 2011/06/17(金) 01:34:57.76 ID:??? (+3,-30,-86)
    <input id="t1" type="text" size="14">
    var t1=document.getElementById("t1");
    テキストボックスに入力した値をt1とした場合
    このt1が半角数字か、半角数字以外かを判断するには
    どうすればいいのですか?
    777 : Name_Not - 2011/06/17(金) 01:39:24.42 ID:??? (+17,-30,-19)
    if(/^\d+$/.test(t1.value)) alert('半角数字でつ');
    778 : 564 - 2011/06/17(金) 01:51:18.96 ID:??? (+30,+5,+1)
    >>777
    ありがとうございました。
    779 : 730 - 2011/06/17(金) 02:45:42.75 ID:??? (+2,-30,-274)
    >>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>
    780 : Name_Not - 2011/06/17(金) 02:45:57.57 ID:vR5kbH9N (-28,-30,-112)
    javascript、初心者です。特殊文字変換に関して分からないことがあります。
    <>といった特殊文字を投稿するときに&lt;や&gt;に変換するjavascriptを使用したいと思っています。
    上の方(headタグ内)に、

    <SCRIPT type="text/javascript">
    <!--
    var replKeywords = { '&': '&amp;', '<': '&lt;', '>': '&gt;' }

    onload =

    //-->
    </SCRIPT>

    があります。
    (&lt;等は全角で書いています、半角だと思ってください)
    下に続く
    783 : Name_Not - 2011/06/17(金) 05:57:49.91 ID:??? (+6,-30,-126)
    >>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いらんぞ。
    これ以上のものがあるかは、今すぐには思いつかんが。
    785 : Name_Not - 2011/06/17(金) 06:08:05.07 ID:??? (-2,-30,-16)
    "onclick"じゃねーや。"onload"なw
    786 : Name_Not - 2011/06/17(金) 06:39:37.59 ID:??? (+19,-30,-115)
    ゲームなんかで使う画像を全て開いたときに先読みする場合って

    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()) {}

    こんな感じでいいんですか?
    788 : Name_Not - 2011/06/17(金) 06:57:07.88 ID:??? (-12,-30,-94)
    >>787
    書き間違ったかと思ったが、ちゃんと通るのを確認した。

    関数 showhideForm() は残せよ?
    置き換えるのは showhideFormをonloadに登録してる1行だけ。
    つまり window.onload=showhideForm;
    789 : Name_Not - 2011/06/17(金) 07:20:17.09 ID:??? (+38,-30,-254)
    >>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);
    790 : 780 - 2011/06/17(金) 07:31:20.17 ID:vR5kbH9N (-22,+29,-2)
    >>788
    フヒヒ…
    できました!!
    ありがとうございます。
    791 : Name_Not - 2011/06/17(金) 07:36:55.01 ID:??? (+57,+29,-59)
    もしかして、JavaScript ではヌルバイト攻撃に対処不能ですか?
    探しても対応策の情報がでてこないのです。
    JavaScript の処理中で影響がなければ、サーブレット側で処理ですかね?
    792 : 755 - 2011/06/17(金) 07:42:56.36 ID:??? (+7,-30,-95)
    >>759,783
    たしかに、[.]が入るのだけ注意すればevalいらんね。
    作ったのが大分前だから1行でかけることに惹かれたんだと思うw
    attrは[['id', 'tst_1'], ['style.color', 'black'], ["onclick", function(){alert(this);}]]こんなかんじ。
    793 : 786 - 2011/06/17(金) 07:46:28.82 ID:??? (+63,+29,-10)
    >>789
    src入れないとだめですよね
    ほんとすみません変なコード書いちゃって

    そしてコードどうもありがとうございます
    詳しい説明助かります
    早速試してみますね
    794 : Name_Not - 2011/06/17(金) 08:19:18.23 ID:??? (+2,-30,-26)
    >>792
    evalなしでも一行で書けるよ
    正規化に拘るのならどっちにしろ attr[i][0] 検査しないと
    elem[attr[i][0]] = attr[i][1];
    795 : Name_Not - 2011/06/17(金) 10:08:21.08 ID:??? (-6,-29,-28)
    evalでevalなよ・・・
    796 : Name_Not - 2011/06/17(金) 10:41:24.59 ID:??? (+3,-30,-31)
    【審議中】
        ∧,,∧  ∧,,∧
     ∧ (´・ω・) (・ω・`) ∧∧
    ( ´・ω) U) ( つと ノ(ω・` )
    | U (  ´・) (・`  ) と ノ
     u-u (l    ) (   ノu-u
         `u-u'. `u-u'
    797 : Name_Not - 2011/06/17(金) 11:27:55.27 ID:??? (+28,+0,-39)
    いや、eval使いこなしてる奴はevaってもいいかもしれん
    798 : Name_Not - 2011/06/17(金) 12:31:12.94 ID:??? (+57,+29,-11)
    なんか最近ここで質問に答えた時とその反応が気持ちよくて
    教師になっちゃおうかなって思ったりする
    799 : Name_Not - 2011/06/17(金) 13:00:19.26 ID:??? (-1,-29,+0)
    >>794
    style.border
    800 : Name_Not - 2011/06/17(金) 16:08:34.10 ID:??? (+113,+30,-122)
    ウイルス作成罪ワロタw

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

    グーグルクロームの情報送信も教えなかったらウイルスじゃねーかよw
    電子レンジで猫を温めてはいけないレベル
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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