元スレ+ JavaScript の質問用スレッド vol.87 +
JavaScript覧 / PC版 /みんなの評価 :
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
電子レンジで猫を温めてはいけないレベル
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.77 + (1001) - [97%] - 2010/5/8 19:06
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.80 + (1001) - [97%] - 2010/11/9 2:17
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.107 + (1001) - [95%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.117 + (1009) - [95%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.137 + (1003) - [95%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.127 + (1001) - [95%] - 2016/2/4 0:15
- + JavaScript の質問用スレッド vol.127 + (160) - [95%] - 2021/7/16 9:30
- + JavaScript の質問用スレッド vol.94 + (1001) - [95%] - 2012/1/8 15:46
トップメニューへ / →のくす牧場書庫について