12/01/09 09:30:39.49
■主要FAQ (全部は URLリンク(fiddle.jshell.net) )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
3:Name_Not_Found
12/01/09 09:31:03.64
■各種仕様 ( URLリンク(fiddle.jshell.net) も参照 )
Standard ECMA-262
URLリンク(www.ecma-international.org)
ECMAScript 3
URLリンク(www2u.biglobe.ne.jp) (和訳)
ECMAScript 5.1
URLリンク(es5.github.com)
ECMAScript 5 compatibility table
URLリンク(kangax.github.com)
HTML Standard (HTML5)
URLリンク(www.whatwg.org)
W3C Document Object Model Technical Reports
URLリンク(www.w3.org)
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org)
JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
JSON (JavaScript Object Notation)
URLリンク(www.json.org)
Gecko DOM Reference
URLリンク(developer.mozilla.org) (和訳)
URLリンク(devedge-temp.mozilla.org)
MSDN Library JScript
URLリンク(msdn.microsoft.com)
4:Name_Not_Found
12/01/09 09:33:58.13
>>1
おつかれさん
5:Name_Not_Found
12/01/09 09:35:50.41
おつかれ。ときに前スレ、関連スレは無しになったの?
6:Name_Not_Found
12/01/09 09:38:40.70
jQueryの1.6移行に対応したリファレンスサイトが見つからないんですが
知ってる方いましたら良かったら教えて下さい。
7:Name_Not_Found
12/01/09 09:41:28.61
公式ドキュメントでいいんでないの
英語がわからなくてもサンプルコードだけでなんとなくわかる
8:Name_Not_Found
12/01/09 09:43:14.73
前スレ>>997
言ってる症状が再現しない・・・
こちらの環境は、Ubuntu11.10 64bit
Chrome バージョン 16.0.912.75
FireFox バージョン 9.01
9:Name_Not_Found
12/01/09 10:07:17.78
>>7
公式ドキュメントのことすっかり忘れてましたorz
ありがとうございます。
10:Name_Not_Found
12/01/09 10:08:23.30
>>8
この質問だろ?
>997 :Name_Not_Found:2012/01/09(月) 08:56:32.12 ID:WCvX0dGt
>実際に現象が見せられなくてあれなんですが
>URLリンク(jsfiddle.net)
>このコードを私のwebサーバで動かすと挙動がおかしくなります。
>
>具体的には、 chrome最新版で見て
>リンクからここに飛んだとき、数字の表示が中央ではなく
>左上の座標0,0を中心として表示されることがある
>1度目のアクセスは正常で、2度目からズレる
>そのページでF5すれば位置のズレがなおる
>再びリンクからアクセスすると1度目は正常で2度目からズレる、のパターン
>firefoxで確かめてみたところ、この現象は発生しませんでした。
>ブラウザ側のOSはubuntu11.04 64bitです
>
>これはどこの問題でしょうか?
>またどのようにすれば常に正しい位置に表示されますか?よろしくお願いします。
位置がズレるのはJavaScriptじゃなくてCSSの問題の気もするがな
ここ見てもらうとわかるが、ズレは再現できないな
URLリンク(browsershots.org)
11:mae 997
12/01/09 10:40:30.77 WCvX0dGt
>>8,10
ふむむ再現できないとしたら私のローカルの問題ですかねえ
12:Name_Not_Found
12/01/09 10:49:19.86
デバッガの使い方ぐらいテンプレいれとけや
13:Name_Not_Found
12/01/09 10:55:02.67
前スレの~~()とかa/b%|0が分かりません
検索エンジンでは記号で検索ができないので解説お願いします
14:Name_Not_Found
12/01/09 10:57:51.78
すみません。jQueryスクリプトのことで聞かせてください。
$(function(){
$('img').mouseover(function(){
$(this).css("opacity","0.8");
});
$('img').mouseout(function(){
$(this).css("opacity","1");
});
});
とりあえずオンマウスでimg要素をゆっくり透明にしたいんですけど、この場合どうすればいいんでしょうか?
fadeOut、In、Toggleでは挙動がちょっと違うようなので…
15:14
12/01/09 11:02:15.38
すみません。
animateで自己解決しました。
16:Name_Not_Found
12/01/09 11:29:42.43 XwxD68HW
URLリンク(www.html5.jp)を参考にしてループ処理している間に
プログレスバーを表示しようともくろんでいます。
しかし,描画がループ終了後にされるだけで、バーが徐々に伸びていくようになりません。
アドバイスをお願いします。htmlとjavascriptはこうです。safariとfirefoxで試しました。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "URLリンク(www.w3.org)">
<html xmlns="URLリンク(www.w3.org)" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="ja" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>HTML5.JP</title>
<script type="text/javascript" src="../html5jp/progress.js"></script>
<script type="text/javascript">
(function () {
window.onload = function() {
var o = new html5jp.progress("sample", p);
o.draw();
document.getElementById("incr").onclick = function() {
for(var i=0;i<=100;i++){
o.incr(1);
for(j=0;j<=5000000;j++){}
};
};
};
})();
</script></head><body>
<h1>PROGRESS BAR</h1>
<div id="sample"></div>
<button id="incr">start</button>
</body></html>
17:Name_Not_Found
12/01/09 11:31:12.75
javascriptでstyleを切り替えたいんですがプロパティの書き方あるじゃないですか
cssではmargin-leftって書くけどjavascriptではmarginLeftみたいな
あれってw3cとか公式なサイトでどこを見たら乗ってますか?
18:Name_Not_Found
12/01/09 11:41:39.48
>>17
これかな?
URLリンク(www.w3.org)
19:Name_Not_Found
12/01/09 11:46:34.43
以下、>>2 に入る予定だったテンプレ。
■前スレ
+ JavaScript の質問用スレッド vol.94 +
スレリンク(hp板)
■過去スレ全集
URLリンク(www2.atpages.jp)
URLリンク(usamimi.info) (閲覧のみ)
URLリンク(wing2.jp) (閲覧のみ)
■関連スレ
ECMAScript デス 4
スレリンク(tech板)
WSH(・∀・)スレッド! Part 4
スレリンク(tech板)
Webサイト制作初心者用質問スレ part227
スレリンク(hp板)
CSS初心者スレッド=10th=
スレリンク(hp板)
20:Name_Not_Found
12/01/09 11:51:27.17
>>5
URLリンク(codepad.org) にはあるので付け忘れだと思う。>>19で足しておいた。
>>3のJScriptは前スレ983-984に倣って
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
が正しいと思う。
21:Name_Not_Found
12/01/09 11:53:02.98
>>18
ありがとうございます
22:Name_Not_Found
12/01/09 11:58:14.48
/ // / // ______ / // /
/ // /| r'7\ ,.ヘ‐'"´iヾ、/\ニ''ー- 、., / /
/ / | |::|ァ'⌒',ヽ:::ヽrヘ_,,.!-‐-'、二7-ァ'´|、__
`'ー-‐''" ヽ、_'´ `| |:::::|'" 二.,_> ,.へ_
/ //__// / / / `ヽ7::/
か っ も | / // メ,/_,,. /./ /| i Y //
ァ て う. |'´/ ∠. -‐'ァ'"´'`iヽ.// メ、,_ハ , |〉
| 約 ク ヽ! O .|/。〈ハ、 rリ '´ ,ァ=;、`| ,ハ |、 /
| 束 ソ > o ゜,,´ ̄ . ト i 〉.レ'i iヽ|ヽ、.,____
| し ス / ハ | u ,.--- 、 `' ゜o O/、.,___,,..-‐'"´
| た レ | / ハ, / 〉 "从 ヽ! /
| じ は |,.イ,.!-‐'-'、,ヘ. !、_ _,/ ,.イヘ. ` ヽ.
ッ .ゃ .立 |/ ヽ!7>rァ''7´| / ', 〉`ヽ〉
! ! な て .', `Y_,/、レ'ヘ/レ' レ'
い .な ヽ、_ !:::::ハiヽ. // /
で い ./‐r'、.,_,.イ\/_」ヽ ', / /
す / `/:::::::/ /,」:::iン、 / /
〈 ,,..-‐''"´ ̄ ̄77ー--、_\.,__ /
,.:'⌒ヽ ´ | | , i |ノ `ヾr-、
23:Name_Not_Found
12/01/09 12:10:32.82
<div id="test">test</div>
こういうhtmlがあって
var test = document.getElementById('test');
みたいにid名と変数が同じになると一部ブラウザで正常な動作をしないとかどこかのサイトで読んだ覚えがあるのですが本当ですか?
サイトをブックマークし忘れたのでどこのサイトか覚えてません
24:Name_Not_Found
12/01/09 12:23:54.91
>>13
難しく考えなくていい。前スレのそれは、どちらも演算前処理の整数値変換に意味がある。
前者は2つ並べて元に戻す。後者は0でなければ左の値が返ることを利用してる。
本質的なところは「ビット演算」で検索。
25:Name_Not_Found
12/01/09 12:28:44.01
>>23
IEの実装では
<div id=test>はwindow.testにも登録される
name属性も登録されたような
26:Name_Not_Found
12/01/09 12:32:07.97
>>25
ということは
window.testに上書きされちゃいますね
ってことでtest1みたいにかぶらない変数名にしたほうがいいってことでFAということですか
27:Name_Not_Found
12/01/09 12:33:33.82
PHPで
for($i="a";$i<="z";$i++) echo $i,"\n";
って書くとアルファベットを出力するんですが
JavaScriptにもこういうトリッキーなコードあったら教えてください
28:Name_Not_Found
12/01/09 12:49:44.87
var i = 'a'.charCodeAt(0);
var n = 'z'.charCodeAt(0);
for (; i <= n; i++) alert(String.fromCharCode(i));
29:Name_Not_Found
12/01/09 12:50:09.51
var a = {
a:"sample",
b:function(i){return i*10;}
}
と
var a.prototype = {
a:"sample",
b:function(i){return i*10;}
}
は
どっちがよく使われますか?
30:Name_Not_Found
12/01/09 12:53:48.64
>>25
IEじゃなくてDOM標準ルール
>>29
それらは全く異なるもの
どちらを多く使うもクソもない
31:Name_Not_Found
12/01/09 12:54:27.41
>>29
>var a.prototype = {};
これは使われることはないよ
32:Name_Not_Found
12/01/09 12:55:55.00
>>30
Firefoxでならないんだけど仕様のどこに書いてあるの
33:Name_Not_Found
12/01/09 12:55:57.95
>>31
構文エラーだもんなww
34:Name_Not_Found
12/01/09 13:41:06.23
>>33
構文エラーでは無いぞ。
ただnewされないからprototypeが生きないというだけ。
35:Name_Not_Found
12/01/09 13:41:32.44
>>24
ビット演算、なるほど全く触れてないから分からないわけだ
ありがとう
36:Name_Not_Found
12/01/09 13:50:19.94
>>24
ちと訂正しとく。
「後者は右に0を置くことで左の値がそのまま返ることを利用してる」
37:Name_Not_Found
12/01/09 13:53:06.88
>>32
HTML4.01の仕様をうろ覚えしてて勘違いしてた
別に明確な規格は多分なかった
>和訳
>スクリプトからHTMLの要素を参照する
>各スクリプト言語には、スクリプト内からHTML文書オブジェクトを参照するための規約が存在する。
>本仕様は、HTML文書オブジェクトを参照するための標準機構を定義するものではない。
>しかしながら、スクリプトから要素への参照は、要素名に従わねばならない。
>スクリプトエンジンは、要素を識別する際に次の優先基準に従う必要がある。
>まず、name属性とid属性の双方が設定されている場合はname属性が優先する。
>次に、どちらか一方の場合は、ある方を用いる。
38:Name_Not_Found
12/01/09 13:57:04.06
つまりビット演算にかけるとまず初めに必ず切り捨て整数化されてから演算されるわけよ
|はまあ+みたいなもんよ
~~は反転の反転で元通りってわけ
39:Name_Not_Found
12/01/09 14:09:07.49
質問します。
自分の名前を色を000000から999999まで変えながら10回表示せよ。(for文使え。)
これの解き方がわかりません。どうか教えてください。
40:Name_Not_Found
12/01/09 14:15:01.60
>>28
ありがとうっす!
41:Name_Not_Found
12/01/09 14:23:12.19
var str = 1;
alert(str);
var str;
alert(str);
三行目で変数が初期化されず、4行目で1を表示するのは何故ですか?
42:Name_Not_Found
12/01/09 14:34:20.40 XNdh3zt4
安藤優子、木村太郎は、某プロパイダの社外取締役、かつ、安藤は、フジ社外の人間にもかかわらず、フジテレビジョンのM&Aの最中、フジのホワイトナ
イトの【親会社】の本業を無視して、「インターネットは虚業だ。具体性がない
。」というようなことをコメントしました。この虚業は、livedoorを指していた
としても、「同業者」であったということは、非常に、違和感を感じずには、い
られません。
43:Name_Not_Found
12/01/09 14:35:56.01
>>39
var elem = document.createElement("p");
elem.appendChild(document.createTextNode("名前"));
+function foo(n) {
var code = "#";
for (var i = 0; i < 6; i++) { code += n; }
document.body.appendChild(elem.cloneNode(true)).style.color = code;
return foo;
}(0)(1)(2)(3)(4)(5)(6)(7)(8)(9);
44:Name_Not_Found
12/01/09 14:36:30.53
>>41
変数宣言はコードを処理していく前にundefined値で初期化される。
文脈を辿る時、vaは無いものとして考えればいい。
45:Name_Not_Found
12/01/09 14:38:17.22
a = "あ";
↑をカタカナに変換したいんですが標準のメソッドでできないのでしょうか?
ぐぐってもやり方がバラバラなのしかないんですがスタンダードな書きかたってないのでしょうか?
46:Name_Not_Found
12/01/09 14:43:02.35
>>43
1000回表示したいときどうするんだよ
>>45
基本文字コードずらせばOK
そんくらいのメソッド自分で作れ
47:Name_Not_Found
12/01/09 14:43:58.14
>>46
エディタのマクロ使う。
48:Name_Not_Found
12/01/09 14:44:47.51
JavaScriptの楽しさがようやくわかってきた。抜け出せなくなりそうや
49:Name_Not_Found
12/01/09 14:45:03.47
アホもうはしゃべんなw
50:Name_Not_Found
12/01/09 14:45:43.57
何て?w
51:Name_Not_Found
12/01/09 14:46:08.58
jQueryでデザイン始めたり、HTML5とか楽しいもんねー
52:44
12/01/09 14:46:33.55
○undefined値で初期化される
◎デフォルト値で初期化される
53:Name_Not_Found
12/01/09 14:49:01.47
奇蹟のカーニバル
開 幕 だ
n: ___ n:
|| / __ \ .||
|| | |(゚) (゚)| | ||
f「| |^ト ヽ  ̄ ̄ ̄ / 「| |^|`|
|: :: ! ]  ̄□ ̄ | ! : ::]
ヽ ,イ / ̄ ̄ハ ̄ ̄\ ヽ イ
54:Name_Not_Found
12/01/09 14:49:52.35
人人
(iii) (iii) < ウ >
人人 // \\ < オ >
< イ >// / ̄\ \ \ < オ >
< ェ >\\ |(゚) (゚) |/ / < オ >
< ス > \\|. ∩..| / < オ >
< ! >. \\∪// < オ >
< イ > (  ̄ ) YYY
< .ェ > .. | |
< .ェ > .. | |
< ス > .. | |
YYY / /\ \
/ / \ \
人人 人人
< ウ > /~~T~~\ <ウ .>
< オ > / / ̄\ \ <オ .>
< .ォ > | /|(゚) (゚) |\|< ッ >
< オ > //|. ∩ |\\ YYY
< オ >. \\\∪///
< ォ > |\\ //|
< オ > | (iii) (iii) |
YYY || ||
..(__) (__)
55:Name_Not_Found
12/01/09 14:50:45.58
__,,:::========:::,,__
...‐''゙ . ` ´ ´、 ゝ ''‐...
..‐´ ゙ `‐..
/ \
.................;;;;;;;;;;;;;;;;;;;;;;::´ ヽ.:;;;;;;;;;;;;;;;;;;;;;;.................
.......;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙ .' ヽ ゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;......
;;;;;;゙゙゙゙゙ / ゙: ゙゙゙゙゙;;;;;;
゙゙゙゙゙;;;;;;;;............ ;゙ ゙; .............;;;;;;;;゙゙゙゙゙
゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;.......;............................. ................................;.......;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙
゙゙゙゙i;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙゙;l゙゙゙゙゙
ノi|lli; i . .;, 、 .,, ` ; 、 .; ´ ;,il||iγ
/゙||lii|li||,;,.il|i;, ; . ., ,li ' ; .` .; il,.;;.:||i .i| :;il|l||;(゙
`;;i|l|li||lll|||il;i:ii,..,.i||l´i,,.;,.. .il `, ,i|;.,l;;:`ii||iil||il||il||l||i|lii゙ゝ
゙゙´`´゙-;il||||il|||li||i||iiii;ilii;lili;||i;;;,,|i;,:,i|liil||ill|||ilill|||ii||lli゙/`゙
´゙`゙⌒ゞ;iill|||lli|llii:;゙i|||||l||ilil||i|llii;|;_゙ι´゚゙´
56:Name_Not_Found
12/01/09 14:51:29.46
_, ,_
(; ´Д`)ゴバクッター!
/ヽ_ァ/ヽ_ァ
) )
57:Name_Not_Found
12/01/09 14:51:55.57
>>43
>(0)(1)(2)(3)(4)(5)(6)(7)(8)(9);
カオスだなw
var i = 10; for (; i--;) { foo(9 - i); }
for()で回す方がわかりやすくない?
58:Name_Not_Found
12/01/09 14:53:30.71
俺って凄い?アピールですからw
59:Name_Not_Found
12/01/09 14:54:13.27
>>57
そこで for を使ったら質問者の意図に沿っちゃうだろ。
60:Name_Not_Found
12/01/09 14:55:08.38
____
/ -- 丶、
/ ノ ●) ヽ┏┓
.| (●, ,⊃ ノ ┏┛
.ゝ、 `´ .へ ・
61:Name_Not_Found
12/01/09 14:57:20.00
知恵袋でやれ
62:Name_Not_Found
12/01/09 14:58:43.60
>>43 をネタと受ける層とマジレスと受ける層に分かれるのな。
63:Name_Not_Found
12/01/09 14:58:59.47
どうしたらいきなりw
知恵袋のスaテaマか?
64:Name_Not_Found
12/01/09 14:59:14.05
最近書き込みの勢いが早いな
65:Name_Not_Found
12/01/09 14:59:57.93
ネタもマジも迷惑
66:Name_Not_Found
12/01/09 15:01:58.85
配列同士の連結がやりたいんですが
a = [1,2,3];
b=[4,5,6];
a.concat(b);
連結されません
67:Name_Not_Found
12/01/09 15:02:36.76
荒らしはマジそんくらいにしておけ
68:Name_Not_Found
12/01/09 15:03:31.43
>>52
勉強になった
69:Name_Not_Found
12/01/09 15:04:30.49
>>66
荒らしかも知れないけど
concatでググってご覧
荒らしならごめんね
70:Name_Not_Found
12/01/09 15:05:37.39
>>66
求めている値の結果は [1, 2, 3, 4, 5, 6] だったら、ほにゃらら.prototype.push(a, b);
71:Name_Not_Found
12/01/09 15:05:37.76
>>65 とか >>67 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
72:Name_Not_Found
12/01/09 15:06:49.91
70
いちwいちwボカスナww(笑)w(笑)
73:66
12/01/09 15:08:35.84
ちょっとーん、70さーん…
隠さないで教えてクレピョンヤン(笑)
74:Name_Not_Found
12/01/09 15:09:16.61
くせーなこいつ
75:Name_Not_Found
12/01/09 15:11:53.73
>>63
面白くない
76:Name_Not_Found
12/01/09 15:11:58.50
>>72
>>70 だけど、ボカスナも何も素で間違ってたわw
>>73
あれ.prototype.push.apply(a, b);
77:Name_Not_Found
12/01/09 15:13:48.72
すまん、もうワケワカラン。どなたか助けて下さい。
JavaScriptでちょっとしたシミュレータを作っていたんだけれど、Cookieの処理でハマってしまった。
Cookieの読み取り(下記で言うgetCookie関数)が、Cookieの最初の値は取れるんだけれど、2回目以降が取れん。
// 式1:クッキーのセット
function setCookie( key, val ){
var tmp = key + '=' + escape( val ) + ';' ;
document.cookie = tmp;
}
// 式2:クッキー呼び出し
function getCookie( key ){
var arrCookies = document.cookie.split(';');
var tmpCookies;
for(var i=0;i<arrCookies.length;i++){
tmpCookies = arrCookies[i].split('=');
if( unescape(tmpCookies[0]) == key ) return unescape(tmpCookies[1]);
}
return null;
}
78:Name_Not_Found
12/01/09 15:14:40.23
// 式3:実際の利用時の記述
setCookie('foo', 'テスト1');
setCookie('bar', 'テスト2');
alert('テスト:foo = ' + getCookie('foo'));
alert('テスト:bar = ' + getCookie('bar'));
式3の所で言うと、 fooは 'テスト1'が返って来る。
barは null が返って来てしまう。'テスト2'どこ行ったんじゃ。
もうお手上げ。
79:Name_Not_Found
12/01/09 15:15:49.59
>>70
ありがとうございます
push勉強になりました
あと自己解決なんですが
代入してなかったのが原因でした
a = [1,2,3];
b=[4,5,6];
c = a.concat(b);
って書いたら連結されました
80:Name_Not_Found
12/01/09 15:19:26.55
>>78
split(/\s*;\s*/)
たぶん。
他にも問題が起こりそうな箇所が色々。
81:Name_Not_Found
12/01/09 15:20:01.87
当たり前だろw
まずググれよww
1にググって2にググって34567ときて10まで来たら
やっとここで聞ける権利をくれてやるわw
はぁーっ!!俺ってググってハンサム!!
82:Name_Not_Found
12/01/09 15:21:39.80
>>79
荒らしの癖に調子のんな~
83:Name_Not_Found
12/01/09 15:23:49.31
いや自分は>>66と>>79しかレスしてないので
84:Name_Not_Found
12/01/09 15:27:58.69
よくいうわ
85:Name_Not_Found
12/01/09 15:32:00.29
結局はつまり、他の言語で語るな、と、いうことだ。
ECMA262-3 を完読したことのない JS 初心者が、それまでの知識経験だけでやろうとした事の代表例。
いかにして Java と似せて書くか、いかにして Perl と似せて書くか、いかにして Python と似せて書くか。
いかにして Java の言葉で説明するか、いかにして Perl の言葉で説明するか、いかにして Python の言葉で説明するか。
これらは全て尽く失敗してきている。何故なら、言語仕様を読んでいない、基本的な知識や合意事項が欠落しているから。
86:Name_Not_Found
12/01/09 15:34:45.13
/)
( i )))
/ ̄\ / /
| ^o^ | ノ / < いみがわかりませんなぁ
\ / ,/
/ _ /´.
(___)/
/ l`、 ノ ノ
,...-‐''" _.l::::`ー,=-'(
/ ´ ,.!_;;;:r''.. ` 、
,...-‐' _,....-‐'" `'-、:: ` 、
/.. ,....―'" `ー、__ `l
/_;::::-'" /::::::::::::::::ノ
,.../._r'" ヽ`''「 ̄ ̄
(__ノ' \_\
87:Name_Not_Found
12/01/09 15:39:25.89
???
88:Name_Not_Found
12/01/09 15:48:29.02
すみません。シンタックスシュガーって何ですか?
89:Name_Not_Found
12/01/09 15:51:26.33
>>88
URLリンク(dic.nicovideo.jp)
90:Name_Not_Found
12/01/09 15:54:11.34
>>88 一般的な用語なのでぐぐって勉強した方がいいよ。
91:Name_Not_Found
12/01/09 15:57:12.17
AA荒らしとか懐かしいなあ。ま、せいぜい頑張って。技術的に間違って理解してるとどっかから
先は書けないとか動かせないとかになって発言できなくなるんで、それでせめてもと
AA貼るんだよね。可哀想にねえ。
92:Name_Not_Found
12/01/09 15:59:19.54
何言ってんだこいつ
ああ、いつもの奴か
93:Name_Not_Found
12/01/09 15:59:43.02
自演乙
94:Name_Not_Found
12/01/09 16:00:00.19
Firefoxのfirebug, Chromeのデベロッパーツール, IE8の開発者ツール は最低限知っておくべき
あ、知ってたらこのスレには来ないかw
95:Name_Not_Found
12/01/09 16:00:42.42
質問者を荒らし呼ばわりしてる人がいつもの荒らしって認識してるけど合ってる?
96:Name_Not_Found
12/01/09 16:02:20.04
広告宣伝料徴収、必至だなw
1行8000円として、1 * 8000 = 8,000円也
97:Name_Not_Found
12/01/09 16:02:23.88
荒らし論はやればやるほど当人の思う壷だから。以後、スルーで。
98:Name_Not_Found
12/01/09 16:02:30.41
>>66 が荒らし扱いなのはなんで?
確か前スレでも同じような質問があった気がするけど、やたら流れ早いし見逃しても仕方ない気がするけど
99:Name_Not_Found
12/01/09 16:04:31.40
そゆときは「前スレ○○番を嫁カス」だけ言えばいいの。それで終わるから。
100:Name_Not_Found
12/01/09 16:05:33.97
いや、すまん
書き方がいつもの奴と似てたからふっかけただけだ
101:Name_Not_Found
12/01/09 16:06:12.88
やりたいことなんですがランダムで画像を表示して画像をクリックすると指定したURLにとばしてあげる。
画像リンクの上にサイトのタイトルをテキスト+center表示させてあげたいです。
画像をクリックして指定したURLにとばすことは出来ましたが、どうすればサイトタイトルと画像(リンク先)を合わせることが
できるのでしょうか?
<script language="JavaScript" type="text/JavaScript">
<!--
var icnt = 2;
var myDate = new Date();
var d = myDate.getSeconds();
var idx = d % icnt;
var bnr=new Array();
var lnk =new Array();
bnr[0]="1.jpg";
lnk[0]="URL";
bnr[1]="2.jpg";
lnk[1]="URL";
document.write('<a href="' + lnk[idx] + '" target="_brank">');
document.write('<img src="' + bnr[idx] + '" border="0" alt="">');
document.write('</a>');
-->
</script>
アドバイスをお願いします。
102:Name_Not_Found
12/01/09 16:06:48.32
>>97 とか >>99 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
103:Name_Not_Found
12/01/09 16:11:42.02
ま、過去スレが山のようにあるんで、統計的に示したらいいんじゃないかな。
>>101
サイトのタイトルはどっかに入ってるの?リンク先から取ってくるとかだと面倒だと思うよ。
104:Name_Not_Found
12/01/09 16:11:56.74
変数名三文字とか昔の拡張子思い出して懐かしいな
JavaScriptの変数には長さの制限あるんだっけ?
105:Name_Not_Found
12/01/09 16:14:02.46
ナッシング
106:Name_Not_Found
12/01/09 16:17:01.98
アダルト紹介サイト。作ってみたんだけど
これじゃ情報として全然役に立たないやと思って
納得できるものを作ろうと思って色々やっていたら
いつのまにかjavascriptにハマってしまいました。
他のアダルトサイト紹介サイトの管理人さんたちって
すごい技術で、私も頑張らなきゃと思ってるんだけど、
難しいです。
107:Name_Not_Found
12/01/09 16:23:08.64
ある特定の要素がありましてwidth:100px;height:100px;のボックスがあります
この要素内だけのマウスのxy座標を求める方法をアドバイスお願いします
108:Name_Not_Found
12/01/09 16:23:21.41
ゲームのスキルシミュレーターが作りたくてjavascriptを勉強し始めました。プルダウンメニューにあるoption valueの数字を読んで
その値によって他のプルダウンメニューを変更したいのです。具体的には
フォーム1のスキルがlv3でなければフォーム2のスキルはlv0になる
フォーム2のスキルがlv1以上であればフォーム1のスキルはlv3になる
という具合に作りたいのです。全然ダメだとは思うのですが今自作できた限界が下です。
<script type="text/javascript"><!--
n=document.FORM1.one.selectedIndex;
//nにプルダウンメニューで選択されたvalue-数字を入れたい
function Change(n){
switch(n){
case 1:if($("two").selectedIndex-0!=0){$("one").selectedIndex=3;}break;
case 2:if($("one").selectedIndex-0!=3)$("two").selectedIndex=0;}}
// --></script>
<div id="AAA">フォーム1
<form name="FORM1"><select id="one">
<option value="0">レベル0</option>
<option value="1">レベル1</option>
<option value="2">レベル2</option>
<option value="3">レベル3</option>
</select></form>
<form name="FORM2"><select id="two">
<option value="0">レベル0</option>
<option value="1">レベル1</option>
<option value="2">レベル2</option>
<option value="3">レベル3</option>
</select></form></div>
このサイト見て勉強してろとかでいいのでアドバイス頂ければ嬉しいです。
109:Name_Not_Found
12/01/09 16:23:41.27
>>100は質問した人に謝んないの?
110:Name_Not_Found
12/01/09 16:23:50.92
eval使ってるところを会社の同僚から
「evalはどんな事があっても絶対に絶対に使うな」ときつく怒られたのですが
調べて見ても何故そんなに使ってはいけないのかよくわかりませんでした
理由をご存知でしたら教えてくれませんか?
111:Name_Not_Found
12/01/09 16:25:45.83
108は過去スレからの引用
112:100
12/01/09 16:27:27.29
>>109
すまんって謝っただろw
カタワかよww
113:Name_Not_Found
12/01/09 16:29:31.43
>>110
evalを使うとXSS脆弱性が高まるから
114:Name_Not_Found
12/01/09 16:31:50.56
>>110
Ecmascript 5になるとstrictモードではeval使えなくなるからねー、そういうのに
備えているのかもしれない。個人的には、そこに入ってくる文字列が何であるかに
よって起こることが全然違うようになるので、コードを誤読しやすくなり、お仕事と
してやる場合は有害なんじゃないかと想像している。
>>108 >>111
へー質問コピペ荒らしなんだ?(w
115:Name_Not_Found
12/01/09 16:32:06.31
諸君、私は ECMAScript が好きだ
JavaScript が好きだ
ActionScript が好きだ
JScript が好きだ
ExtendScript が好きだ
QtScript が好きだ
Spidermonkey で
Tamarin で
Ajajaで
JavaScriptCore で
Rhino で
この地上に存在するありとあらゆる ECMAScript が大好きだ
綿密に繋ぎ合わされたプロトタイプチェーンが好きだ
プロトタイプが書き換えられ、オブジェクトが拡張される様など心がおどる
複雑に入り組んだ関数スコープが好きだ
関数が呼び出され、 Activation オブジェクトが鎖のように繋がり、樹木のように広がっていく様など胸がすくような気持ちだった
with ステートメントが好きだ
幾重にも繋がれたプロトタイプチェーンが、スコープチェーンに追加される様など感動すらおぼえる
with したオブジェクトのプロトタイプの関数が書き換えられた時などもうたまらない
スコープにプロパティを追加し、変数をすり替えるのは最高だ
複雑そうなオブジェクトを JSON で書き下した時など絶頂すら覚える
諸君 私は ECMAScript を 烈火の様な ECMAScript を望んでいる
諸君 私に付き従う ECMAScript 好きの諸君 君たちは一体何を望んでいる?
更なる ECMAScript を望むか
糞の様な ECMAScript を望むか?
プロトタイプの限りを尽くし クラス世界のプレーンを殺す 嵐のような ECMAScript を望むか?
ECMAScript !! ECMAScript !! ECMAScript !!
116:108
12/01/09 16:35:09.65
そんなっw(*゜o゜*)w
私頑張って書いたのにっ(;´Д⊂)
荒らしなんかじゃないですぅ(泣)
117:Name_Not_Found
12/01/09 16:35:41.14
>>113
urlに仕込んだり、ブックマークレットとかデバッガで書き換えられるから結局evalを使おうが使うまいが関係なくないか?
118:108
12/01/09 16:36:46.59
>>111 >>114
過去に似た質問があったというのは知りませんでした。すみません
文章は引用じゃなくて全部自作です(´;ω;`)
過去スレあさってみます
119:108
12/01/09 16:39:03.43
だからどうか許してポンo(><)o
120:Name_Not_Found
12/01/09 16:41:37.20
「キース・ジャレットのゴルトベルク変奏曲聴きたいんだけど…どこに売ってるかな?」
「あそこの○○レコードで売ってたよ」
「ありがと。行ってくる」
「そこはグレン・グールドだろ常考」
…本人がわざわざキースを指名してんのにこういう押し付けがましい輩はどこにでも居る。
まぁあえて好意的に解釈するなら、
「本人はグールドを知っていてキースを選んだのではなく、そもそもグールドを知らないのではないか。
知ってたらそっちを選ぶかもな。知っておいて損はあるまい」
という親切心からかもしれない。
121:Name_Not_Found
12/01/09 16:42:37.81
>117
evalわざわざ使わないとできない事ってないじゃんか
122:Name_Not_Found
12/01/09 16:45:57.86
JavaScriptをわざわざ使わなくても(ry
123:Name_Not_Found
12/01/09 16:47:04.00
特定のキーを順番に入力された場合関数を実行するにはどうしたらいいですか?
124:Name_Not_Found
12/01/09 16:51:48.03
jsがそんなに好きならmozilla.orgのjsの各プロジェクトに参加するといいですよ
125:Name_Not_Found
12/01/09 16:53:41.35
俺はJSよりも
126:Name_Not_Found
12/01/09 16:54:21.91
..... .:_ -― ─- 、:. ......
..::⌒>.、:: ...::/::.::/::.:: ヽ::.::.\::....::x<⌒::.
::x-=≦.::.-=`ミO.:/:/:/|:./.:ハ::ヽ::`O::-=ミて`く⌒ヽ::
::, イ::ノ⌒'Z _⌒ Y彡::./V j/ヽ::ハ.::.V::Y⌒/;^)- 入 \:
::/ :/八 '(:::::':,\ トV::./⌒ ⌒ヽ.::∨/,.::'::/ /:::∧ '\::
::/ `V::/ヽ\ \ :':, 八Ⅳ __ __ jハ:::l, :':::::, ′ /:::/  ̄ ノ\::
::〈 ,.:'::/ ヽ \ \:l:ハ| 〃⌒ ⌒ヾ ハ:|::::/ ,.イ:::/ ∠.::勹::
::/ ! :.'::::∧ | ヽ \ム .::::: r ┐ ::::.,'ノ/ / /::/ |__:/::
::∠._jハ_ん:ヘ/}ノ /ヘ ヽゝ_ ヽ ノ イ/ /⌒ん'⌒)_>::
 ̄  ̄`ヽ `=≧r ‐i彡''´ /::  ̄
::\ヽ ` ´ / /::
:: ,′
::i :; :; i::
::| |::
::l |::
::j ::
::,′ l::
::/ |::
::/ !::
::/ 〉┴r ::
::,′ /:: ::| |::
127:Name_Not_Found
12/01/09 16:54:48.37
の方が好きだぜ
128:108
12/01/09 16:55:48.43
>>111 >>114 >>118
お前成りすまし常習犯だろ
129:Name_Not_Found
12/01/09 16:55:59.14
>>121
電卓作るときとかeval使わないと厳しい
130:Name_Not_Found
12/01/09 17:02:00.50
>>129
それはお前が無能なだけ
131:Name_Not_Found
12/01/09 17:02:02.25
電卓・・・?
132:Name_Not_Found
12/01/09 17:05:07.23
evalがなきゃできない事はない
evalはevil
evalは不要
不要
不要
不要
不要
不要
不要不要不要不要不要不要不要
不要
不要
わかったか
133:Name_Not_Found
12/01/09 17:05:26.95
>>128
自演乙
134:Name_Not_Found
12/01/09 17:06:15.77
2*2ってテキストエリアに入れられたら
eval(2*2)とかやらんでも他にやり方色々とあるんちゃう?
135:Name_Not_Found
12/01/09 17:07:07.99
今までeval使うしかないのかッッ・・・!っていう状況何度もあったけど
結構頑張ればイケル
136:Name_Not_Found
12/01/09 17:08:55.23
テキストエリアからのあらゆるコードを実行するために!
ユーザーからのあらゆくコマンドに対応するためには!
137:Name_Not_Found
12/01/09 17:09:52.62
>>130
>>134
じゃあやってみろよ
eval使わずにinput以下の計算式いれて答えさせるんだろ?
((1+2+3)*2+19*(30*2))/2
138:Name_Not_Found
12/01/09 17:10:38.60
それもeval不要
eval無しでJSでJSのパーサーを書くことは可能だと証明されてる
139:Name_Not_Found
12/01/09 17:11:14.42
eval使用を非推奨なレス多いけど
セキュリティリスクを伴うとか聞くけど
具体的な話を聞いたことがない
どういう風にevalを使われるリスクがあるわけ?
140:Name_Not_Found
12/01/09 17:11:18.94
不要なのは分かったからコードで見せてね
141:Name_Not_Found
12/01/09 17:11:29.39
Array.prototype.slice.call(arguments)
これは、
Arrayオブジェクトのプロトタイプのsliceメソッドを呼んでいて、呼び出すときにsliceの中におけるthisをargumentsにして呼び出していて、
結果として、大元の引数を全て返している、でいいですか?
また、使いどころは引数が不定のとき、でいいですか?
142:Name_Not_Found
12/01/09 17:11:53.61
炉梨流棒術(炉梨棍)
中国に数多あるという棒術の中でもその長い歴史で
一際異彩を放つものが唐代に流行した炉梨流棒術であろう。
己の肉体の棒のみで戦う姿は最早伝説といっても過言ではない。
しかしその修行は大変厳しく、修行者たちは妖しきものを除き
己の覇気を高めるという意味で「妖除覇覇(ようじょはぁはぁ)」の
掛け声を出して修行に励んだという。
しかし当然門下生には厳しい修行に負けて脱落者も出ており、
そういった者は近隣の村のトシバも行かない少女によからぬ行為を
行う者も多く、当時社会的な問題になった。
民衆はそういったものを「丙奴(ペド・甲乙丙でいえば丙のような奴)」
と呼んで忌み嫌われたという。
現代でも少女との性行為をほのめかすような奴に対して
「氏ね、ペド野郎」という事があるが、これは無論当時の名残である。
民明書房刊 『萌える!中国武術』より抜粋
143:Name_Not_Found
12/01/09 17:12:37.92
>>138
パーサーのライブラリplz
144:Name_Not_Found
12/01/09 17:12:55.36
JSのパーサー作るんならeval使うのと変わらんだろがw
145:Name_Not_Found
12/01/09 17:13:04.15
なんか今日は荒れてるな
146:Name_Not_Found
12/01/09 17:13:30.94
実際にevalで被害があったケースでもあるの?
聞いたことない
147:Name_Not_Found
12/01/09 17:14:18.01
evalが不要なら何でevalは実装されているの?
何でJavascriptの仕様からevalが削除されないの?
148:Name_Not_Found
12/01/09 17:14:23.61
JSで再現したCPUの上でLinux再現したのがあったろ
あの上でCのJSパーサー動かせばひょっとしてevalいらないんじゃね!?
149:Name_Not_Found
12/01/09 17:16:14.12
>>147
互換のためだけ
stripモードでは仕様から削除されてる
150:Name_Not_Found
12/01/09 17:16:41.44
ECMAScript 5 からは eval は削除されています
151:Name_Not_Found
12/01/09 17:17:59.94
evalあったって個人サイトで使うなら何のリスクもないだろ
152:Name_Not_Found
12/01/09 17:18:12.51
javascriptパターンにも使うなって書いてあった
153:Name_Not_Found
12/01/09 17:18:20.38
>stripモード
154:Name_Not_Found
12/01/09 17:19:09.82
evalは悪魔
悪魔
悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔悪魔
155:Name_Not_Found
12/01/09 17:19:10.23
>>137
フツーにNumberと正規表現で一発じゃねぇかよ・・・。
156:Name_Not_Found
12/01/09 17:19:36.62
evalって具体的にどんなリスクがあるっていうのよ
wikipediaにさえ具体的な話ねえし
被害実態すら存在しない
架空の話題じゃねえか
机上の空論
157:Name_Not_Found
12/01/09 17:20:33.44
evalを使っていいのはJSまでだよね~
158:Name_Not_Found
12/01/09 17:20:49.52
>>155
非効率だがそれでも出来るな
俺も見た瞬間それ考えた
159:Name_Not_Found
12/01/09 17:21:11.71
>>155
その一発のコードを教えてください
160:Name_Not_Found
12/01/09 17:21:26.21
>>156
XSS
161:Name_Not_Found
12/01/09 17:22:22.42
お前ら懲りずにまた1でも0でもない0.5くらいの事を
1か0かに無理矢理決着付けるために争ってんのか(笑)
暇だね~(笑)
162:Name_Not_Found
12/01/09 17:22:24.01
>>159
やだよめんどくせぇ
ここまで言って、それでも出来ないと思ってるならもうそれでいいよ
163:Name_Not_Found
12/01/09 17:23:49.23
>>159
ガキはくんな!!
164:Name_Not_Found
12/01/09 17:24:23.80
>>162
プッ
165:Name_Not_Found
12/01/09 17:25:20.67
__,. -─- 、_
. /三≧x≦三≧ミミ、_
/三三≧x、≦三≧xミミミ、
. /三≦幺 `ー=ニ三≧、
/彡'彡' ミミi
|彡彡 ミミミ|
|彡彡 ,.......、 ミミミ!
r‐'、彡__/〃 ̄_`ヽ___, ‐≠≒ミ、 ミミミL
{ V ! ''´ゞ'ヽノ | ,rュ、_ 「`レ' }
ヽ ノ ` ー一'´ 丶、__,ノ ,〃
い /r'´ ヾ、, ィ /
し1 / ¨゙ー'¨´ ` / f
! { ーrrrrrrrrr;、_, ト'
', `二二´ ./
', ヽ /
} 、____,/ / |
_,.‐个、 ー-一 '´ , 个.、_
__, -'´:::::::::| \ ,.-'´ l!:::::::`:ー.、_
バカカ・コイツァー [ Bacca Koitzer ]
( 1928 ~ 1938 ドイツ )
166:Name_Not_Found
12/01/09 17:25:24.85
>>160
それってサイトにevalコードが仕込まれてるってわからないと
できない話だよね?evalのリスクじゃなくね?
167:Name_Not_Found
12/01/09 17:26:37.25
>>160
XSSでevalを利用するってむしろありえなくね?
168:Name_Not_Found
12/01/09 17:26:41.28
/: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
169:Name_Not_Found
12/01/09 17:27:00.16
>>160
具体的にどんなコードよ
170:Name_Not_Found
12/01/09 17:27:01.80
>>166
ププッ
171:Name_Not_Found
12/01/09 17:27:23.70
evalを使わないと処理できないと思う場合、
それは、大抵実装がおかしい。
evalを使わない実装にするのが当たり前。
非推奨な物を、わざわざ使うなんてのはナンセンス。
172:Name_Not_Found
12/01/09 17:27:47.88
>>155>>158
ここまで言って理解できない>>164って一体・・・。
よくこんな無能でeval以外は不可能とか言えたものだ
173:Name_Not_Found
12/01/09 17:28:25.51
evalが無ければXSSの心配が減る。
余計な心配事をわざわざ作る必要がないじゃん。
174:Name_Not_Found
12/01/09 17:28:29.23
わざわざeval経由で悪質なコード実行する意味を感じない
Javascriptが有効ならそのままコード走らせればいいじゃん
175:Name_Not_Found
12/01/09 17:29:13.43
アレだろ、もう皆一瞬で答え出しちゃったけど
自分だけわからなかったのが恥ずかしくて引くに引けない状況なんだろw
最初口数多かったのに今じゃ煽るだけw
176:Name_Not_Found
12/01/09 17:29:20.83
>160顔真っ赤www
177:Name_Not_Found
12/01/09 17:30:10.74
>>174
詭弁乙
178:Name_Not_Found
12/01/09 17:31:30.90
eval坊は絶対にevalが必要なケース挙げてみろよw
挙げれないだろw
179:Name_Not_Found
12/01/09 17:32:11.17
129 名前:Name_Not_Found[sage] 投稿日:2012/01/09(月) 16:55:59.14 ID:???
>>121
電卓作るときとかeval使わないと厳しい
137 返信:Name_Not_Found[sage] 投稿日:2012/01/09(月) 17:09:52.62 ID:???
>>130
>>134
じゃあやってみろよ
eval使わずにinput以下の計算式いれて答えさせるんだろ?
((1+2+3)*2+19*(30*2))/2
155 自分:Name_Not_Found[sage] 投稿日:2012/01/09(月) 17:19:10.23 ID:???
>>137
フツーにNumberと正規表現で一発じゃねぇかよ・・・。
これ情報科のFラン大学生でも即答できんじゃね?
180:Name_Not_Found
12/01/09 17:32:17.68
先にeval使って問題が起きるケース挙げろよ
181:Name_Not_Found
12/01/09 17:32:18.20
教えて!Ziddyちゃん - eval()の危険性の具体例を教えてくれませんか?
URLリンク(ziddy.japan.zdnet.com)
182:Name_Not_Found
12/01/09 17:32:56.32
>>178
>>137が絶対にevalが必要なケースだったんだろw
183:Name_Not_Found
12/01/09 17:34:05.62
冬厨が沸いてんのか
184:Name_Not_Found
12/01/09 17:34:23.87
前置き
・個人サイトに脆弱性があっても実害はない
利用者がそのサイトを信頼していない限りいくらインジェクションやらXSS出来ても害はない
evalで脆弱性になる条件
・利用者がサイトを信頼してアカウントなりを作ったりしてること
・外部ドメインからのPOST/GETを受け入れて入力値を出力すること(検索語句等)
・入力値を検査せずevalで利用すること
結局、わざとらしく作らないと無理
185:Name_Not_Found
12/01/09 17:35:36.90
そのサイトのどこにevalのコードが仕込まれてるかどのようにevalが使われてるか分からないと
悪質なコード仕込めなくね?
わざわざサイトの構造調べてまで仕込むだけのメリットがあんの?
186:Name_Not_Found
12/01/09 17:35:52.41
>>182
あーなるほど、JavaScriptのJの字もわからないような奴が
必死に俺難しいJS書けないからevalは必要!って訴えてたわけね
187:Name_Not_Found
12/01/09 17:36:52.60
いや~、あのね・・
evalは確かに全部危険って訳じゃないよ。
何もかも危険なら、そんなの残ってない訳だから。
ただ非推奨な訳よ、今後使えなくなったら動かない訳よ、そのスクリプト。
それに、evalは使う人にスクリプト書いてもらう訳よ。
エラーチェックとか、しない訳よ。するにしても、すごい厳格にしないといけないし、
そのチェックで本当に完璧かなんてわからない訳だよ。
そもそも、「俺ん所個人サイトだから大丈夫」とかって話じゃなくて、
プログラムの作法的に間違ってる訳で、危険があるかもしれない物を、
大丈夫なんじゃないの?なんて考えで使ってる時点で品格を疑う。
eval使わなくてよい実装にするのが基本であり当たり前。
188:Name_Not_Found
12/01/09 17:37:19.08
計算式実行するだけのライブラリとか無いの?
189:Name_Not_Found
12/01/09 17:37:19.80
>>185
>>173
190:Name_Not_Found
12/01/09 17:38:50.90
お前ら揉めてないで
みんなで協力してsafeEval関数ライブラリー作れば解決なんじゃね?
191:Name_Not_Found
12/01/09 17:39:09.15
互換性残すためにeval残してるって
さっさと見切りつけて削除しないJavascriptだかECMAScriptだかの仕様と
ブラウザの仕様が悪い
192:Name_Not_Found
12/01/09 17:39:44.65
>>188
それ作ってこのスレで販売すれば売れるな!
193:Name_Not_Found
12/01/09 17:42:03.37
インタプリタ言語の大長所の1つをあっさり切り捨てる必要ないじゃない
evalが完全不要ならコンパイル言語にした方がセキュリティとかたくさん長所がある
194:Name_Not_Found
12/01/09 17:43:40.59
Javaはコンパイル後もeval使えたような
195:Name_Not_Found
12/01/09 17:44:17.07
javaにevalは存在しません
196:Name_Not_Found
12/01/09 17:46:35.79
コンパイル後にevalが使える言語もあるが
コンパイル後のファイルにパーサもどきが一緒に入ってる変態設計
evalライブラリみたいなもん
197:Name_Not_Found
12/01/09 17:46:43.61
正規表現で計算式分割とかかなり複雑じゃね?
198:Name_Not_Found
12/01/09 17:47:36.53
もうevalって名前も出すな
見ただけで吐き気がするわ(笑)
199:Name_Not_Found
12/01/09 17:47:45.08
>>155
だからコード張れ
200:Name_Not_Found
12/01/09 17:49:03.92
>>197
可能ってだけで一発で書けるようなもんじゃないよね
201:Name_Not_Found
12/01/09 17:49:19.46
>>199
プッ
>>186
202:Name_Not_Found
12/01/09 17:49:44.43
たかが一発で掛けるコードを出し惜しみする理由は出来ないから
203:Name_Not_Found
12/01/09 17:50:31.34
>>179
一発
即答
そんな平易なコードなのですか?
204:Name_Not_Found
12/01/09 17:51:10.68
請求表現は関数渡せば前後の文字抜き出しながらできるから
それでやったらいいんじゃない?
205:Name_Not_Found
12/01/09 17:51:37.69
逆ポーランドなんちゃらで取り出せばおk
206:Name_Not_Found
12/01/09 17:52:14.95
即答できるとはFラン大学生も随分と賢くなったものだな
207:Name_Not_Found
12/01/09 17:53:19.98
Fラン大学生は各種IT企業から引く手数多な人材なんだよ
208:Name_Not_Found
12/01/09 17:53:42.27
>>199
今回だけだぞ
var keisan=function(a){return function(b){return this[a](b)}}(function(a){return String.fromCharCode.apply(String,a)}([101,118,97,108]));
keisan('((1+2+3)*2+19*(30*2))/2');
209:Name_Not_Found
12/01/09 17:53:48.01
九九さえ出来ないやつがチラホラいるFラン大学生が即答とは
それなら小学生でも即答できそうだな
210:Name_Not_Found
12/01/09 17:54:07.02
>>155が今から一発で↓を計算してくれます
1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31
211:Name_Not_Found
12/01/09 17:54:46.18
はい、このスレの結論
次回からテンプレ載せ
・evalは完全不要です
・evalに関する発言は禁止です
・evalを使いたい人は向いてないのでJSやめなさい
212:Name_Not_Found
12/01/09 17:56:08.17
>>211
>>181のサイトリンクも入れとけ
具体例があってeval信者が減ること間違いなし
213:Name_Not_Found
12/01/09 17:58:53.88
>>210
ほらよ
謝罪はよ
t="1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31"
a=(new Function ("return "+t))();
alert(a)
214:Name_Not_Found
12/01/09 18:02:01.89
>>213
それってevalと同じようなリスクあるんじゃないの?
215:Name_Not_Found
12/01/09 18:02:49.82
>>213
new Function = eval 正規表現使うんじゃなかったの?
216:Name_Not_Found
12/01/09 18:03:03.65
>>214
は?しらねーし
eval使ってないからいいだろオラ
217:Name_Not_Found
12/01/09 18:03:27.43
>>208
仕組みはよくわからないけどスゲー
218:Name_Not_Found
12/01/09 18:04:25.21
>>217
えっ?w
219:Name_Not_Found
12/01/09 18:05:38.82
>>214
これで安全だな
function keisan(){return 46;}
keisan('1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31');
220:Name_Not_Found
12/01/09 18:06:03.21
結局Numberと正規表現を使われたコードは貼られなかった
221:Name_Not_Found
12/01/09 18:07:17.73
>>218
解説ヨロ
222:Name_Not_Found
12/01/09 18:10:29.55
>>218
>>213と同じじゃね?
223:Name_Not_Found
12/01/09 18:11:04.18
>>210
本当に一発でやられてクッソワロタw
こんなのも出来ないでeval必要とか言っちゃってるんだから恥ずかしい
224:Name_Not_Found
12/01/09 18:11:27.72
alert(String.fromCharCode.apply(String, [101, 118, 97, 108]));
225:Name_Not_Found
12/01/09 18:11:41.05
>>208
keisan('alert("やあ");');
あのなあ、この手の実装はjsonもそうだがEVAL使っていいんだよ。
正規表現で妥当性を検証してから後はインタプリタに任せる。これが一番高速で忠実な方法。
226:Name_Not_Found
12/01/09 18:13:03.36
>>224
evalワロタ
227:Name_Not_Found
12/01/09 18:13:19.65
186 返信:Name_Not_Found[sage] 投稿日:2012/01/09(月) 17:35:52.41 ID:???
>>182
あーなるほど、JavaScriptのJの字もわからないような奴が
必死に俺難しいJS書けないからevalは必要!って訴えてたわけね
> 210 返信:Name_Not_Found[sage] 投稿日:2012/01/09(月) 17:54:07.02 ID:???
> >>155が今から一発で↓を計算してくれます
> 1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31
ここまで言ってたのに完全に論破された馬鹿久々に見た
228:Name_Not_Found
12/01/09 18:13:43.30
>>220
早く謝罪しろ
t="1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31";
Number(/t/);
a=(new Function ("return "+t))();
alert(a);
>>225
強引な論展開乙
229:Name_Not_Found
12/01/09 18:13:44.80
>>223
おまえ恥ずかしくないの?
230:Name_Not_Found
12/01/09 18:14:31.07
>>229
プークスクス
231:Name_Not_Found
12/01/09 18:15:14.15
揚げ足取ろうにも、それら全てがコードで論破されてんのな
232:Name_Not_Found
12/01/09 18:15:44.87
>>228
あれ?セキュリティ上の問題があるからeval使うなって言ってたおまえらが
同じセキュリティリスクあるコード書くの?
すごいねプロのプログラマ
233:Name_Not_Found
12/01/09 18:16:04.23
>>137
こんな恥ずかしい奴始めて見た
234:Name_Not_Found
12/01/09 18:16:12.88
>228
__‐`'´''"'マ ____\ ー‐┐ |一
Z. __`ゝ \ ノ´ ⊂冖
∧ /| ゙仆斗┘リート=┬-、_ \ ー‐┐ ,/
/ ∨\/ | `L,.っ,ノ u }ノ ノ \ ,> ノ´ \
|__ 兀.!_// i | l、 く. ー‐┐ ー|ー
ー‐┐ ー|一ヽヽ / u' \ヽ‐'´ !| ト、 \ ,ノ´  ̄匚ノ
ノ´ ノ こ /_____, }j ハ、 ヽ ヽ,___/ / ー‐┐ ┼‐ヽヽ
ー‐┐ ニ|ニ. / ___ノ /\_,≧/ u 人. / ,ノ´ ノ こ
ノ´ ⊂冖 く {上rン´ ,厶../ / ヽヽ \ || ニ|ニ
ー‐┐ | /  ̄ ノ{こ, /,〃 !| \ ・・ ⊂冖
ノ´ l.__ノ \ ,.イ !l`T´ | / |:| / |
ー‐┐ ー‐;:‐ \ // l | |_| ∠.、 l.__ノ
ノ´ (_, / ヒ_ー--、_|ー、____,ノj┘ / ┼‐
ー‐┐ / / \ ̄\ー`トー-< / ノ こ
ノ´ \ \ \ ヽ \ ヽ  ̄ ̄|
| | 」z.___ > \. ヽ. ヽ l |/l /| ∧ /\
・・ /| (_, / ) lヽ ', l、 |/ | / V
┼‐ \ , イ、_,上ハ } 小 |/
ノ こ \ (乙≧='''"´ ,∠,__ノ/
┼‐ヽ / 厶乙iフ/
ノ ⊂ト く `¨¨¨´
\
235:Name_Not_Found
12/01/09 18:16:47.35
>じゃあやってみろよ
>eval使わずにinput以下の計算式いれて答えさせるんだろ?
>((1+2+3)*2+19*(30*2))/2
236:208
12/01/09 18:17:02.63 s1gtT2R7
>>224,225
気付くとは思ったけど、ばれちまったかw
237:Name_Not_Found
12/01/09 18:18:09.60
>>232
はへ??
俺そんな事言ってないんだけど??
238:Name_Not_Found
12/01/09 18:18:52.69
goto文の使用していいか悪いかって話に似てるなぁ
eval使うしかないな。って思う前に、
eval使わないよう実装変えるにはどうすればいいだろうって考えろ
239:Name_Not_Found
12/01/09 18:19:10.01
/|:::::::::::::::::::::ヽ.:.:.:.:、:.:.:.:、:.:.:.、.:.、.:.:.:.:.:.::`゛>
/{::|:\:::::::\.:.:.:\.:.:.ヽ::.::.ヽ:.:.ヽ::::::::::.:.`゛ー- ..,__
: 何 : /:|::',:ト、::::::ヽ、:.\:.:.:.\:.:.ヽ:.:.:\.:.:.:.:.:::.:.:.:.:::.::::_;:-'´ : : :
: が : //:/:::|::',|::'、:::::::::\:.:\.:.:.ヽ:.:.:\:.:..\::::::::::::\、::::\ : : :
: 何 : /!::|::l::::/|:::l:ヽ:\::ヽ:.:\:.:\.:::ヽ:.:.:ヽ:.:.:.:\::::::::::::\ ̄ : : :
: だ : |/l::|::|::|:ト、:::::::::、、:ヽ、:.:.:.:::::::::::::::ヽ::::.:ヽ:.:.:.:.\:.:.:.ヽ:::\. : : :
: か : |::|::/l::|::|r‐ヽ:::::ヽ(ヽー,―\::::::、::::::::::ヽ::.:.::::::.:::::::ヾ. ̄ : : :
: : }//l::|:::|{(:::)ヾ、:::ヽ \!(:::) ヽ,:::ヽ:::::::::::::::::::::::::::::::::::ヾ、 : : :
: わ :. |/l::|::|:::|ヽ==''" \:ヽ、ヽ=='" |:::::::::::::::::::::::::::::::::::ヽ、::::\
か / ',|::|:::| / `゛ |!::::::::::::::::::::::::::::ト、::ト、_` ゛`
ら l::!::::ト、 '、 _ ||::::::::::::::::::::::::ト:ヽヾ| | ̄ ̄ ̄`ヽ、
な r'"´||',::::', |:::::/l:::::|\:::ト、ヾ | | / / \
い / ll ',::', 、 ーこニ=- /!::/ ヽ:::| ヾ、 ノ ノ / ,イ ヽ、
,' | '、:, \ -- ,. '´ |;' l ヾ、. // / | l: l
| |! ヽ; ヽ /.: i! / ゛// |l / | | |
240:Name_Not_Found
12/01/09 18:19:59.53
evalに反対してる奴らって別にセキュリティを考えてるわけじゃないんだね
241:Name_Not_Found
12/01/09 18:20:54.02
たぶん冬休みにJavascript始めたJaavscript歴1週間とかなんだろ
じゃなかったら頭がちょっと弱い子とか
242:Name_Not_Found
12/01/09 18:20:56.19
早く
計算式を計算してくれるライブラリを紹介するか
Numberと正規表現で計算するコードを書いてくれよ
243:Name_Not_Found
12/01/09 18:21:23.73
あんなにeval使うな取ってたのに出てきたコードが誤魔化しでワロタ
計算式を解析するコードがそんな数行で書けるわけないのにねw
244:Name_Not_Found
12/01/09 18:22:21.52
どうせ今必死にeval使わない方法でググってるんだろうwwwwwwwwwwwwwwwwwwwwwwwwww
245:Name_Not_Found
12/01/09 18:22:57.43
____
/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <じゃあやってみろよ
| |r┬-| | eval使わずにinput以下の計算式いれて答えさせるんだろ?
\ `ー'´ / ((1+2+3)*2+19*(30*2))/2
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
246:Name_Not_Found
12/01/09 18:23:55.84
とりあえずリレーでsafeEval作ろーぜ!
俺から
$=function (){}
$.safeEval=function(t){
return new Function("return "+t);
}
↓
247:Name_Not_Found
12/01/09 18:24:20.32
いつからリアル中学生の溜まり場になったんだ
248:Name_Not_Found
12/01/09 18:24:27.80
なんで((1+2+3)*2+19*(30*2))/2なんて簡単な数式にしたんだろうか・・・。
難問だったのかなぁ
249:Name_Not_Found
12/01/09 18:24:38.73
逆ポーランドなんちゃら使えばいいだろ
計算式の文字列1文字ずつ取り出してはスタックに入れて
演算子出たら取り出して計算してスタックに入れると
文字列全部取り出したら結果出すってね
250:Name_Not_Found
12/01/09 18:26:00.62
なんか面倒な初心者がいてるなぁ・・・
evalを使わないで計算できるように自分で考えろよ・・・
何責任転換して、見つけれなかったらお前らが間違ってるみたいな事言ってんだよ。
251:Name_Not_Found
12/01/09 18:26:07.05
$=function (){}
$.safeEval=function(t){
return new Function("return eval("+t+")");
}
252:Name_Not_Found
12/01/09 18:27:20.81
だからJSLinux使えって言ってんだろ
eval坊はまずそれをできるまで試してからもの言えよ
253:Name_Not_Found
12/01/09 18:28:17.32
できたぞ!!
$=function (){}
$.safeEval=eval;
254:Name_Not_Found
12/01/09 18:28:44.43
荒らしとかキチガイってこーやって生まれるんだろうな
無知が知ったかして、叩かれ、引けなくなり反論するも、徹底的に叩かれ、憎悪が溜まり、復讐をと
イジメられる方にも原因はあるのよね
255:Name_Not_Found
12/01/09 18:29:22.89
【審議中】
∧,,∧ ∧,,∧
∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U ( ´・) (・` ) と ノ
u-u (l ) ( ノu-u
`u-u'. `u-u'
256:Name_Not_Found
12/01/09 18:30:34.94
お前ら懲りずにまた1でも0でもない0.5くらいの事を
1か0かに無理矢理決着付けるために言い争ってんのか
くだらねプッ
257:208
12/01/09 18:32:50.30 s1gtT2R7
もう不毛な争いはやめろよ
function keisan(a){ return prompt('問題 '+a+' の答えは?')}
keisan('((1+2+3)*2+19*(30*2))/2');
258:Name_Not_Found
12/01/09 18:34:20.26
結論:誰も書けない
259:Name_Not_Found
12/01/09 18:35:03.49
Javaスクリブトを最近習い始めたんだが、ちょっと疑問。
これっていわゆるブラウザ上で色んなことをするやつだけど、
あるボタンを押す→ボタンの下あたりに適当なデータぶちこんだテーブルを表示する
とかっていうのも出来るの?できたとしてもやっぱりテーブルのデータはあらかじめどっかに書いて
おかなきゃ駄目だよな。DBとかから引きずってきて表示、なんてハイレベルなこと
できそうなかんじじゃないし。
一応調べたらなんか<div>タグにid=名前ってつけてやって何かするって奴が
近いようだが…。
260:Name_Not_Found
12/01/09 18:35:10.27
結論:もう面倒だからeval使え。それで被害者でても俺は知らん。
261:Name_Not_Found
12/01/09 18:35:47.38
エバラエバラっておまえらそんなに焼肉食べたいのかよ!!!
262:Name_Not_Found
12/01/09 18:36:01.60
>>254 とか >>256 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。
263:Name_Not_Found
12/01/09 18:36:22.45
>>259
固有名詞を間違えるな
×Javaスクリブト
○Javascript
264:Name_Not_Found
12/01/09 18:36:38.37
っていうか計算式にeval使うような奴は他の時も解決方法がわからず一人eval使うだろ
265:Name_Not_Found
12/01/09 18:36:49.01
evalは不要
悪魔
不要
悪魔
不要
悪魔
不要悪魔不要
266:Name_Not_Found
12/01/09 18:37:23.16
┏┳┳┓ ハイ. ┏┳┳┓
┏┫┃┃┃ 雑談は ┃┃┃┣┓
┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃
┃ ┃┃┏━━┓┃┃ ┃
┃ 雑談 ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━┛┗┳━┳┛┗━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━┫ ┗━┓
. ┗━━┛
267:Name_Not_Found
12/01/09 18:37:29.91
>>259
サーバ上のDB叩きたいなら、サーバ上にそういうスクリプト置くなりして、
ajaxとかで問い合わせて表示するようにすればいい。
ブラウザ上のJavaScriptだけで、サーバ上のDB叩くとかは無理
268:Name_Not_Found
12/01/09 18:38:03.54
devil
↓
evil
↓
eval
あー、なるほどそういうことかー
269:Name_Not_Found
12/01/09 18:38:23.43
なんだこいつら(笑)
evalに親でもころされたのかw
270:Name_Not_Found
12/01/09 18:39:09.69
>>264
計算式を解決する
代替コードのを示してくれ
代替コードを紹介してるサイトを教えてくれるのでもいい
271:Name_Not_Found
12/01/09 18:39:18.22
>>264
固定的にEVAL=絶禁としたらあかんよ。
272:Name_Not_Found
12/01/09 18:39:36.99
このまま1000までいくよ~
273:Name_Not_Found
12/01/09 18:40:05.10
ここからラーメンスレ
274:Name_Not_Found
12/01/09 18:40:08.57
つかユーザーが計算式入力するとかどんな状況だよ
275:Name_Not_Found
12/01/09 18:40:26.18
白組がんばれー
赤組がんばれー
276:Name_Not_Found
12/01/09 18:40:47.71
グーグルの検索窓に計算式ぶちこめばおk
277:Name_Not_Found
12/01/09 18:40:51.69
どこかのブログのネタに洗脳されてevalは使いたがらない自称上中級がいるのか
278:Name_Not_Found
12/01/09 18:41:33.35
ひとまず>>181で具体的にevalの危険性を語ってくれてるから初心者は読みなさいね
279:Name_Not_Found
12/01/09 18:41:37.63
>>270
つJSLinux
280:271
12/01/09 18:41:40.97
>>270
それはあるよ。構文木とかで調べればいい。
ただ、インタプリタが実装していることをその上でもまた実装するのか、って問題がある。
一番計算の仕様に忠実なのはインタプリタだしね。だから、さっきも言ったけど正規表現とかで
妥当性だけ確かめて、あとはインタプリタに投げる方法もある。
281:Name_Not_Found
12/01/09 18:42:19.66
>>268
いいこと教えてやる
>devil→悪魔
>evil→邪悪
282:Name_Not_Found
12/01/09 18:42:59.54
どういうことだってばよ
283:病気的な意味で
12/01/09 18:44:08.50
l / ヽ / ヽ \
/ / l ヽ / | \
| し な 間 〉 // l_ , ‐、 ∨ i l | | \ は
| ら っ に |/ l ,-、,/レ‐r、ヽ | /`K ,-、 < し
| ん て あ / | l``i { ヽヽ l | / , '/',` //`|_/ や
| ぞ も わ |> ヽl´、i '_ 。`、llィ'。´ _/ /,) /\ ろ
| | な |`/\ヽ'_i ,.,.,.⌒´)_ `_⌒ /__/l \ く
っ | く |/ / l´,.-― 、l`ー一'_冫 /l l | / っ
!!!! | \ ', / /`7-、二´、,.| /// | /
lT´ { / / ト、 |::| /// / / !!!!!
l´ ヽ、 > ー ,/ |ニ.ノ-' / / _
i``` 、/ } ',,,..' |-'´,- '´  ̄/ ヽ∧ ____
\/ ' \_ `´ノ7l´ / // ヽ l ヽ
/ ̄ |  ̄ ̄/ ノ L___/ ★ U |
/ ヽ /`ー´ /l |
284:Name_Not_Found
12/01/09 18:44:13.06
>>278
読んじゃった・・・
あまりの恐ろしさにもう1人で夜中にトイレにいけなくなっちゃったよ・・・
285:Name_Not_Found
12/01/09 18:45:28.57
つまりdevil(悪魔)をevalするとevil(邪悪)になるのか
286:Name_Not_Found
12/01/09 18:48:39.36
なに、どんどんトンチ大会になってるの?
287:Name_Not_Found
12/01/09 18:50:18.17
冬厨が沸くといつもこうだ
288:Name_Not_Found
12/01/09 18:51:22.97
昨日は割と良かったんだが
289:Name_Not_Found
12/01/09 18:51:55.61
冬厨じゃなくてeval厨だな
290:Name_Not_Found
12/01/09 18:52:37.10
evalをNGワードにぶっこんだ
291:Name_Not_Found
12/01/09 18:56:03.02
進行早いなあ。
292:208
12/01/09 19:00:40.05 s1gtT2R7
ぶっちゃけた話すると、FirefoxやChromeで使われているFirebug系のデバッガはeval()で評価してるんだけどね
293:Name_Not_Found
12/01/09 19:03:07.09
>>292
んなわけねーだろw
294:208
12/01/09 19:04:25.89 s1gtT2R7
>>293
window.eval=null;で、ほぼ無効化できるからやってみ
295:Name_Not_Found
12/01/09 19:16:11.53
>>294
chromeもfirebugもさほど変わらんな
そもそもeval自体がConfigurableとWritableがfalseになってそうな気がするが
それにwindow.evalにnull代入したって
次回の実行コンテキストはまた違うってのが多いだろ
296:Name_Not_Found
12/01/09 19:23:41.52
つうかユーザーが入力したコードが実行されるからって何が問題なわけ?
297:Name_Not_Found
12/01/09 19:27:55.71
298(肉屋)が一言↓
298:Name_Not_Found
12/01/09 19:28:29.25
僕なんだけどさ よくRuby,PHP,Python勉強会でいじめられるんだよ
なんていうか、僕ほら 2chばっかりやってるし Ruby、PHP、Pythonできないから
javascriptでもなめられちゃうし 今日もさんざん勉強会でヒソヒソいわれちゃったよ
Ruby厨「なんだよあいつ Perlしかできないじゃん どうする?あいつ」
PHP君「いまごろPerlって(ヒソヒソ) 仲間外れにしようぜ~!
Pythonちゃん「いいわよ Perl使いだわ時代遅れだわ いまさらPerlなの・・・」
カエレ!カエレ!カエレ! っと僕に罵声をあびせてきました
会場にいたMatzzさんに相談したんですが・・・
Matzz「あなたPerl使いですかRuby使いの相談しかうけれませんよ(笑)」
メガネが怪しげに光っていました いじめられました
僕は、あまりのショックさに会場のトイレにかけこんで2chを開きました
僕「はぁはぁ・・・苦しい 助けてだれか・・・ |Perl___| (スレッドタイトル)[検索] ポチッ!」
[ perl ]を検索しました(あと0モリタポ) 82スレ中 1~50スレ目 0.13秒
Emacs,Ruby,PHP,Pythonを使ってるやつらがきもい - UNIX板@2ch(3)
僕「なんだこれは・・・僕と同じ考えをしてる人がいる・・・」
僕はきめました Perl忍者さんというスレッドを立てた人に助けてもらおうとトイレをでました
???「困っているのかい?君は」
僕「誰ですか?」
???「○○忍者です よろしく 話しましょう! 何でもはなせます
プログラミングとかも 」
僕「はい!!一緒にあいつらを倒しましょう!!」
???「あの・・・ だれかいますか?」
僕「はい?どうしたんですか?」
???「なんさい?僕は19歳です 」
僕「12歳です」
???「もういいです」
Ruby,PHP,Pyhon「便所にゴキブリPerl使いがいるぞーー!!!」
299:Name_Not_Found
12/01/09 19:29:43.02
以上肉屋からのコメントでした!
300:208
12/01/09 19:36:43.25 s1gtT2R7
>>296
何の問題もない
JSON.parse()がなかった頃はeval()を使っていたし、別にeval()だけが危険なわけじゃない
301:Name_Not_Found
12/01/09 19:51:57.23
>>300
そんな事言ってると
var hoge = {test:1},
key = 'test';
alert(eval('hoge.'+key));
こんな感じの糞コードが増えそうだから
eval使って何の問題ないとか言うのは辞めて頂けないか
こんな糞コードのメンテとか考えた事あんの?って感じだわ
JSON.jsなんかでもeval使ってたけど
それらはちゃんとチェックしてからだった筈だが
302:Name_Not_Found
12/01/09 19:52:12.43
正規表現で書いたよー。
function calc(expr) {
return expr.replace(/\(([^()]+)\)|\((.+)\)/g,function(x,a,b) { return calc(a||b); })
.replace(/((?:\d+[*/])+)(\d+)/g,function(x,a,b) { b*=1; return (a.slice(-1)==="*")? calc(a.slice(0,-1))*b : calc(a.slice(0,-1))/b; })
.replace(/((?:\d+[+-])+)(\d+)/g,function(x,a,b) { b*=1; return (a.slice(-1)==="+")? calc(a.slice(0,-1))+b : calc(a.slice(0,-1))-b; })*1;
}
alert(calc("1+2+(3*4)+5*7-((30/6)*(2*10/5+3-(1-1)))+31"));
303:Name_Not_Found
12/01/09 19:59:04.77
>>302
console.log(calc("5*5*(-5)"))
304:Name_Not_Found
12/01/09 19:59:36.20
すまそ。先頭の5*は不要だったな
305:Name_Not_Found
12/01/09 20:00:47.97
やっと来たか
306:Name_Not_Found
12/01/09 20:01:02.29
あとこれも
calc("1/2+2"); // 0.7 (正しくは2.5)
307:Name_Not_Found
12/01/09 20:02:15.59
注文の多い料理店
308:Name_Not_Found
12/01/09 20:02:30.32
Numberはいらない子
309:302
12/01/09 20:03:42.63
もう無理 (´・ω・`)
310:Name_Not_Found
12/01/09 20:04:34.87
>>309
そうだろw普通こういうのは正規表現オンリーでやらないからな。絶対対応しきれない。
311:302
12/01/09 20:09:00.25
指摘された 2つはいった。
function calc(expr) {
return expr.replace(/\(([^()]+)\)|\((.+)\)/g,function(x,a,b) { return calc(a||b); })
.replace(/((?:-?\d+(?:\.\d*)?[*/])+)(-?\d+(?:\.\d*)?)/g,function(x,a,b) { b*=1; return (a.slice(-1)==="*")? calc(a.slice(0,-1))*b : calc(a.slice(0,-1))/b; })
.replace(/((?:-?\d+(?:\.\d*)?[+-])+)(-?\d+(?:\.\d*)?)/g,function(x,a,b) { b*=1; return (a.slice(-1)==="+")? calc(a.slice(0,-1))+b : calc(a.slice(0,-1))-b; })*1;
}
312:Name_Not_Found
12/01/09 20:09:50.57
渡された文字列が計算式かどうかを判定してevalだろ
計算式以外の文字列ならエラー返せばよいわけだし
()+-*/^%1234567890.以外の文字があれば弾けばだいたい安全だろ
313:Name_Not_Found
12/01/09 20:11:56.64
>>312
それでおk
314:Name_Not_Found
12/01/09 20:15:56.26
おkじゃねーよw
計算式かどうかチェックしたあとにエネルギー線によって
ビットアップセットが起きる場合も考えないといけない
その場合eval使ってた方が確率的に危険だろが
315:Name_Not_Found
12/01/09 20:16:55.92
nth-childのnthは何かの略ですか?
316:Name_Not_Found
12/01/09 20:17:13.52
>>314
参考文献plz
317:Name_Not_Found
12/01/09 20:18:19.23
>>316
シングルイベント・アップセットとは
主に外部放射線に起因するソフトエラーは、またの名をシングルイベント・アップセットともいう。
318:Name_Not_Found
12/01/09 20:18:34.96
>>311
(1/(2)+3)-(4)
319:Name_Not_Found
12/01/09 20:19:58.52 ygGAYZhC
sage>>315
n'thの略
これでわから無ければ諦めなさい
320:Name_Not_Found
12/01/09 20:20:27.44
(+5)*(-4)--5+-6
321:Name_Not_Found
12/01/09 20:21:18.51
それが電卓で入力されることはない
322:Name_Not_Found
12/01/09 20:21:36.90
>>320
さすがにそれはカッコが必要だと思う
323:Name_Not_Found
12/01/09 20:27:44.65
>320
とりあえず今月中にいいの作ってくるから待ってて
324:Name_Not_Found
12/01/09 20:36:53.77
乗せられて冬休みの宿題を作ってやるスレ民であった。
325:Name_Not_Found
12/01/09 20:39:18.18
おまえら>>110から200レスもevalで喧嘩してるのか…
326:Name_Not_Found
12/01/09 20:40:56.80
ヽ|/
/ ̄ ̄ ̄`ヽ、
/ ヽ
/ \,, ,,/ |
| (●) (●)||| |
| / ̄⌒ ̄ヽ U.| 1/5スレ・・・・・・・・ゴクリ。
| | .l~ ̄~ヽ | |
|U ヽ  ̄~ ̄ ノ |
|  ̄ ̄ ̄ |
327:Name_Not_Found
12/01/09 20:41:26.58
・evalは絶対に使うべきではない
・基本的には避けるべきだが、局所的にevalの使用機会がある
・evalは積極手に使うべき
328:Name_Not_Found
12/01/09 21:30:39.83
盛り上がってるね。数式のパース書いてみたけど。個人的にはちゃんと
チェックできる奴が分かっていて使うeval()は必要悪、みたいに思う。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN">
<html><head><title>???</title>
<script type="text/javascript">
var s = '1+2';
function exp() {
var v = term();
while(s.match(/^[+-]/)) {
if(s.match(/^[+]/)) { s = s.substring(1); w = exp(); v += w; }
else { s = s.substring(1); w = exp(); v -= w; } }
if(s.match(/./) && !s.match(/^[)]/)) throw 'syntax'; else return v;
}
function term() {
var v = fact();
while(s.match(/^[*/]/)) {
if(s.match(/^[*]/)) { s = s.substring(1); w = term(); v *= w; }
else { s = s.substring(1); w = term(); v /= w; } }
if(s.match(/./) && !s.match(/^[-+)]/)) throw 'syntax'; else return v;
}
つづく(2レスなのでご容赦を)
329:Name_Not_Found
12/01/09 21:31:17.72
function fact() {
if(s.match(/^[0-9]/)) {
var t=s.match(/^[0-9]+/)[0]; s=s.substring(t.length); return parseInt(t); }
if(s.match(/^[(]/)) {
s = s.substring(1); var v = exp();
if(s.match(/^[)]/)) { s = s.substring(1); return v; } else throw 'syntax'; }
}
function calc() {
try {
s = document.getElementById('t0').value; alert(exp());
} catch(e) { alert('syntax error, seeing:' + s); }
}
</script>
</head><body>
<div><input type="text" id="t0" value="((1+2+3)*2+19*(30*2))/2">
<button onclick="calc()">calc</button></div></body></html>
330:Name_Not_Found
12/01/09 21:35:06.89
面倒くさいからconsoleで実行できるスクリプトだけのにしてくれ
331:Name_Not_Found
12/01/09 21:40:42.11
>>330
すみません。その場合、sに数式文字列を格納し、exp()を実行します。それだけ。
332:Name_Not_Found
12/01/09 21:42:12.82
>>328
車輪の再発明乙
URLリンク(d.hatena.ne.jp)
333:Name_Not_Found
12/01/09 21:43:18.29
電卓関係ないな
334:Name_Not_Found
12/01/09 21:43:51.69
>>332
はい、そりゃ誰でも書けるとは思います。練習としてやってみました。
335:Name_Not_Found
12/01/09 21:55:46.22
evalはテンプレートエンジンとかで使うな
ここみたいな低レベルなスレでは一律使うなでいいんじゃねーの
>>110も危なっかしいから使うなって言われたんだろ
336:Name_Not_Found
12/01/09 21:59:29.11
>>333
最終的にJSパーサーを作るまでやるから
337:Name_Not_Found
12/01/09 22:07:57.21
>>332
カッコ使えないじゃん
338:Name_Not_Found
12/01/09 22:16:15.81
カッコつけんなよ
339:Name_Not_Found
12/01/09 22:39:03.30
それこそ328に作ってもらえばいいんじゃねの
340:Name_Not_Found
12/01/09 22:51:48.03
amachang先生やdankogai先生レベルじゃないと作れないよ
おまいらには無理
341:Name_Not_Found
12/01/09 23:00:47.06
eval否定ってJSONどーすんだ。
342:Name_Not_Found
12/01/09 23:05:48.64 veZ1XhXh
下記で、jsonが読めないのですが、
どうすれば、json読めるようになりますでしょうか。
--
<!DOCTYPE >
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript">
var jsonObject = {
"1":"a",
"2":"b"
}
function push() {
alert('jsonObject.1');
}
</script>
</head>
<body>
<input type="button" onclick="push();" value="push">
</body>
</html>
343:Name_Not_Found
12/01/09 23:06:38.95
>>339
もちろん >>328-329 はかっこに対応してるけど。そういうお題だったから。
>>341
別に、ヘンなものがないか検査してからeval()するか、全部自前でパースするか、どっちでも
いいと思うけど。何も考えずにeval()する奴が叩かれるというだけでしょ。
344:Name_Not_Found
12/01/09 23:11:22.91
>>342
jsonObject[1] とかじゃないの。テンプレ >>2 のQ4/A4も読むといいよ。
345:Name_Not_Found
12/01/09 23:56:15.90
JavaScriptでevalを使うなって話は
Cでgotoを使うなって話に似てる。
判って使う分には問題ない。
むしろ、他人の「使うな」って評価を無批判に受け入れちゃう方が問題。
自分で熟慮して、「使うな」って自分を律する事には口を挟まない。
346:Name_Not_Found
12/01/10 00:21:39.85
いやJSONにeval必要ないだろ
347:Name_Not_Found
12/01/10 00:38:58.18 CIijrwn/
(おいおいコイツらいつまでやってんだよさっさと出てけよ・・・)
348:Name_Not_Found
12/01/10 01:11:44.66
evalはフェイルセーフじゃないから好きじゃない
349:Name_Not_Found
12/01/10 01:18:02.02
>>342
どこにもJSONが見つからないよ
350:Name_Not_Found
12/01/10 02:09:38.47
勉強してていくつか質問
1.ダブルクオーテーションの中ではシングルクォートを使うってのが分かったんだけど
更にシングルクォートの中で文字を囲いたいときにはどうするの?
シングルクォート以降はエスケープってやつをしなきゃいけないの?
入門書を見ながら勉強してて少しは慣れてきたんだけど
Jsの書き方のルールに苦戦しててよく間違えてエラーで怒られる。
2.イコールの後の文字は必ずダブルクオーテーションで囲わないとダメって認識であってる?
3.下の構文なんだけど同じ「visibility」メソッド?でも後に続くプロパティの間の記号が
「=」と「:」があるんだけど、どう使い分けたらいいの?
スタイルシートだからコロンになってるの?
だとするとそれ以外は全部「=」を使えばOKなの?
<input type = "button" value = "文章を消す"
onclick = "document.all('text').style.visiblity = 'visible'">
<div id = "text2" style = "position:absolute; left30; top:120; color:red;" visibility:hidden;">
351:Name_Not_Found
12/01/10 02:24:00.92 CIijrwn/
jsを弄る前にhtmlとcssを勉強したほうが幸せになれるぞ
352:Name_Not_Found
12/01/10 02:27:37.52
>>351
やってみる。
しかしどの程度までできるようになったらいいんだ?
353:Name_Not_Found
12/01/10 02:35:34.61
とりあえずhtmlとcssとjsの区別がつくまで
354:Name_Not_Found
12/01/10 03:19:48.58
>>352
HTML5とかDHTMLの質問スレッドがあればそこに行った方がいい
355:Name_Not_Found
12/01/10 03:21:23.06
もはやここは隔離スレだな
356:Name_Not_Found
12/01/10 03:26:51.44
質問者が初心者なのはいいんだが、回答する方に初心者がいると不毛な議論に発展するんだよな
357:Name_Not_Found
12/01/10 03:40:39.03
初心者スレだからそれでいい
358:Name_Not_Found
12/01/10 04:05:12.81
HTML5が流行ってWebProgから人が流れ込んできたせいだな
2012年はHTML5の時代やで
359:Name_Not_Found
12/01/10 04:08:54.27
本スレがないのがよくない
360:Name_Not_Found
12/01/10 04:27:49.79
ECMAScriptスレがあるじゃん
361:Name_Not_Found
12/01/10 04:42:48.16 V9aGb3Q1
>>342
var jsonObject = {
"1":"a",
"2":"b"
}
1がクォートされて"1"になってるんで
jsonObject["1"]
あと、これはjsonではなく、ただのJavaScriptのオブジェクトな
362:Name_Not_Found
12/01/10 04:43:57.88 V9aGb3Q1
蛇足かもだけど
var jsonObject = {
"1":"a",
"2":"b"
};
↑最後にセミコロンを
363:Name_Not_Found
12/01/10 05:03:22.56
>>360
ここは(D)HTMLで使うJSだからECMAはちょっと違う
364:302
12/01/10 05:11:30.35
>>361
指摘するのは、そこじゃないて。
> alert('jsonObject.1');
まず、クォートが不要。
そしてドットシンタクスの場合、識別子である必要があるから、
数字で始まる値は指定できないんで、書くなら jsonObject[1]。
(jsonObject["1"] でも良いけど)
365:Name_Not_Found
12/01/10 05:12:17.95
あれ、名前が…。
366:Name_Not_Found
12/01/10 07:32:24.07
jQueryでドロップダウンメニューをslideToggleで作ったのはいいんですが、
連続でマウスオーバーしたらその回数だけ開閉するのはどうにかならないんでしょうか?
調べてもそれらしい情報がでてこないもので・・・
367:Name_Not_Found
12/01/10 08:03:33.29
数値の入った文字列をevalで数値化してるのですが
あたまに"0"が入ってると8進数になってしまいます
単純に頭に0があれば削ればいいだけなんですが
もっとスマートな方法は無いのでしょうか?
368:Name_Not_Found
12/01/10 08:08:29.87
>>367
eval()を使うのが間違い。parseInt(文字列, 10)を使う。
>>366
onmouseoverではフラグ立てるだけにして、setInterval()から呼ぶコードで
フラグ立ってたらメニュー開くようにすればいいんじゃないかな。
369:Name_Not_Found
12/01/10 08:16:43.53
eval不要説唱えてる奴は宗教でしょ。
言われてた当初はそれなりに意味があったのかもしれないけど
多くは思考停止して闇雲に追従しているだけみたいな。
スレの性質に関係なく「sageろカス」とかいうのもその類。
「スクリプトのコードはコメントタグで囲わなきゃいけないんだよ^^」なんて
自称JSそれなりに知ってる人さんから昔優しく“指導”されたことがある。
そのくせ「Netscapeなんてもう誰も使ってないし切り捨てていいよ」みたいな。はぁ。
自称JSそれなりに知ってる人さんにとっては、Netscapeなんかよりも
JavaScript非対応でコードが文字列としてずらずらと表示されちゃうブラウザ
(NCSA Mosaicとかですかね?)の占めるシェアの方が無視出来ないらしいです。
そういうくだらないしがらみはもう捨てていきましょうよ。
370:Name_Not_Found
12/01/10 08:28:47.94
eval()必要説も同じくらい宗教なんだよね。宗教論争、無意味でスレの浪費だからやめてほしい。
せっかく終わったのに上から目線でまた火をつけるとかもやめてほしい。
371:Name_Not_Found
12/01/10 08:30:39.76 6w+N2uy0
>>366
少し待ち時間入れればいいよ
マウスオーバですぐ発火させないで、setTimeoutで20msecくらい
待ってから表示させるだけでだいぶ違う
触った時のレスポンスと待ち時間はバーターだから丁度よいタイミングに
なるように待ち時間をすりあわせするといいよ
ここまで書いて>>368に気付いた…
せっかくだから投下しときますすんません
372:Name_Not_Found
12/01/10 08:31:22.80
まあevalはCのgotoと同様に、宗教上?の理由で嫌われているのと同様だろうな。
要するにユーザーの入力を単なる文字列では無く、
JavaScript的(あるいはDOM的)に意味のあるものとして利用するのは危険なので、
evalでもinnerHTMLでも、本当にその文字列を使って大丈夫かどうかを必ず意識する必要があるという事。
初心者云々は単に慢心を生むだけなので、初心者経験者は全く関係無い。
evalが嫌われるのは、代替手法が無いような本当に必要となる場面が少ない(JSON文字列をJSONオブジェクト化するなどくらい)ので、
わざわざリスクのある手法を回避したいという人間が多いからでは。
373:Name_Not_Found
12/01/10 08:34:18.50
>>370
うだうだ言ってないで早くコードかけよ
374:Name_Not_Found
12/01/10 08:50:59.46
>>373 ん?数式の解析とかは >>328-329 にあるからね。
>>372 とっても賛成。テンプレに入れるかはともかく、Q&Aにしてみた。
Q. eval()は使ってはいけないと言われたのですがなぜでしょう。
A. ユーザ入力をそのままeval()に与えるということは、ユーザにあなた
のプログラムを全く任意に改変させるのと同等なリスクがあります。
また、プログラム保守上も、そこで「何が」起きるかコードを見たとき
に分かり難くなるというリスクがあります。なのでeval()を使う際は
(a)与える文字列は予め検査して想定されている事だけが起きることを確認。
(b)そこで何が起きることを想定しているかをコメント等で記述。
の2つを守るのがよいスタイルですが、これは一定の手間が掛かります。
過去スレにあるほとんどの(99%以上の)事例は「数値への変換」「変数
の設定」など自然かつ安全な代替手段があるものなので、そのような
ものを知らないレベルの人が安易に使うことを警告して「eval()禁止」
と言われることが多いようです。eval()を使わなければできないことは
確かに存在しますが、そのようなことで普通のWeb制作者がやりたいこ
とは大抵、上記の要件をカバーしたライブラリなどの形でパッケージさ
れたものがあるので、自分で直接eval()を書こうとする前に十分見直さ
れることを薦めます。
375:Name_Not_Found
12/01/10 09:05:13.71
/: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___
/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶