のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,644,733人
昨日: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一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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