5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :Name_Not_Found:2011/05/28(土) 13:31:12.86 ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
(2) ユーザの迷惑になるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) メール欄は空欄にすることを推奨します。(質問者を騙って回答者を煽る迷惑な人がいるようです)
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(*1)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

(*1) Windows ならコピット http://www.umechando.com/software/ を利用すると簡単にコピーできます。

2 :Name_Not_Found:2011/05/28(土) 13:32:03.58 ID:???
■主要FAQ (全部は http://fiddle.jshell.net/vSqKr/24/show/ )
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:2011/05/28(土) 13:32:21.83 ID:???
■前スレ
+ JavaScript の質問用スレッド vol.86 +
http://hibari.2ch.net/test/read.cgi/hp/1303790568/

■過去スレ全集
http://www2.atpages.jp/mirror/2ch/javascript/
http://usamimi.info/~mirrorhenkan/2ch/javascript/ (閲覧のみ)
http://wing2.jp/~mirrorhenkan/2ch/javascript/ (閲覧のみ)

■関連スレ
ECMAScript デス 3
http://hibari.2ch.net/test/read.cgi/tech/1190160481/
Ajaxでも語りませんか Rigel4
http://hibari.2ch.net/test/read.cgi/php/1166751613/
【誰か】jQueryのここがわからない【助けて】
http://hibari.2ch.net/test/read.cgi/tech/1229881548/
1行javascriptプログラミング
http://hibari.2ch.net/test/read.cgi/hp/1066750037/
WSH(・∀・)スレッド! Part 4
http://hibari.2ch.net/test/read.cgi/tech/1243095768/
Webサイト制作初心者用質問スレ part224
http://hibari.2ch.net/test/read.cgi/hp/1301891537/
CSS初心者スレッド=9th=
http://hibari.2ch.net/test/read.cgi/hp/1287470663/
役に立つ書籍は? 4冊目
http://hibari.2ch.net/test/read.cgi/hp/1172823674/

4 :Name_Not_Found:2011/05/28(土) 13:32:35.54 ID:???
■各種仕様
Standard ECMA-262
http://www.ecma-international.org/publications/standards/ECMA-262.HTM
ECMAScript 3
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)
ECMAScript 5.1
http://es5.github.com/
W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳)
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳)
JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
http://jsgt.org/ajax/ref/test/json/test1.htm
Mozilla Gecko DOM Reference, Netscape devedge
http://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳)
http://devedge-temp.mozilla.org/central/javascript/index_en.html
MSDN Library JScript / DHTML (現在日本語版は古杉)
http://msdn.microsoft.com/ja-jp/library/z688wt03%28VS.80%29.aspx
http://msdn.microsoft.com/ja-jp/library/cc409720.aspx

5 :Name_Not_Found:2011/05/28(土) 15:05:38.10 ID:???
>>1
乙です。

1秒毎に実行し、決まった時刻まで「残りHH時間MM分SS秒」と表示したいです。
var today = new Date();
var yyyy = today.getFullYear();
var mm = today.getMonth();
var dd = today.getDate();
//↓こいつが、その日の決まった時刻になります
var targetTime = new Date(yyyy,mm,dd,'18','02','00');
//↓取り敢えず引いてみて…
var diff = targetTime.getTime() - today.getTime();
//ミリ秒の差が出せたっぽい
alert(diff);

この後、差から時分秒を生成すればいいんですかね?
単に60で割ったりすればいいんですかね?
もう少しスマートな方法とかあったら教えて欲しいです。


6 :Name_Not_Found:2011/05/28(土) 15:18:13.83 ID:???
テンプレ議論スタート

7 :Name_Not_Found:2011/05/28(土) 15:37:32.46 ID:???
>>5
targetTime - new Date(); で差分ミリ秒を求めて残り時間は除算で求めればいい


8 :Name_Not_Found:2011/05/28(土) 15:46:16.61 ID:???
998: Name_Not_Found [sage] 2011/05/28(土) 14:51:11.20 ID:???
>>983
ありがとう 以前から数値範囲の判定の書き方に違和感を感じていました
しかし、switchの方が良いというのはどういうケースでしょうか?
if(0<a && a<8){}
else if(a<16){}
else if(32<a && a<64){}
else if(63<a && a<100){}
else {}
という条件分岐の場合、switchに置き換えられますか?
http://hibari.2ch.net/test/read.cgi/hp/1303790568/998

9 :Name_Not_Found:2011/05/28(土) 15:47:17.77 ID:???
999: Name_Not_Found [sage] 2011/05/28(土) 15:29:51.58 ID:???
switch(true){
 case 0<a && a<8:...
 case a<16:...
 case 32<a && a<64:...
 case 63<a && a<100: ...
 default: ...
}
http://hibari.2ch.net/test/read.cgi/hp/1303790568/999


10 :Name_Not_Found:2011/05/28(土) 15:53:54.86 ID:???
>>8
else if(a<16){} が (0 <= a || 8 <= a && a < 16) なのは期待通り?
期待通りでないとして、以下のように出来る。

var a = 1;
if (a < 1) {     // 1未満
} else if (a < 8) {  // 1以上8未満
} else if (a < 16) { // 8以上16未満
} else if (a < 32) { // 16以上32未満
} else if (a < 64) { // 32以上64未満
} else if (a < 128) { // 64以上128未満
} else {       // 128以上
}

11 :Name_Not_Found:2011/05/28(土) 15:58:35.79 ID:???
前スレ 1000 は、何で while (true) がバッドノウハウなんだ?
て思たけど、確かにクライアントサイドでは使いどころない罠。

けど、それと switch (true) は、比較するものではないと思う。

12 :Name_Not_Found:2011/05/28(土) 15:59:56.47 ID:???
>>9はJSLintでエラーになる

13 :Name_Not_Found:2011/05/28(土) 16:03:05.81 ID:???
>>11
while(true) はコードを間違えたときに無限ループになる
間違えたときに止まるのが良いコーディング

14 :Name_Not_Found:2011/05/28(土) 16:12:20.00 ID:???
>>12
ならないぞ?

>>13
それなら、全てのループが使えないじゃん。
間違いが間違っている様に見える様にするコーディングが良いってのなら
聞いたことあるけど。

15 :Name_Not_Found:2011/05/28(土) 16:19:23.01 ID:???
>>14
まあ確かに無限ループする可能性がなくなるわけじゃないけど、条件式が常に true なら無限ループする危険性が高まるのは確か
危険性は出来るだけ排除しておきたいでしょ

16 :Name_Not_Found:2011/05/28(土) 16:21:16.77 ID:???
>>14
下記コードを http://www.jslint.com/ でテストすればわかる

var a = 1;
switch (true) {
 case a < 0:
  alert()
  break;
 case a < 10:
  break;
 case a < 20:
  break;
 default:
}

17 :16:2011/05/28(土) 16:21:55.74 ID:???
ごめん、alert() は消し忘れ

18 :Name_Not_Found:2011/05/28(土) 16:23:18.39 ID:???
>>16
alert() の後にセミコロンがない。
最後の default に break がない。

この 2つの warning だけだった。

19 :Name_Not_Found:2011/05/28(土) 16:27:33.90 ID:???
while(true)を使ったことがないのは
それが必要になるコードを書いたことがないだけ

ifより>>9のswitchの方がほんのわずかだけ速い
バッドノウハウ云々言う奴は、見慣れてないだけ

コーディング規約で禁止したければ好きにしろ

20 :Name_Not_Found:2011/05/28(土) 16:32:40.31 ID:???
>>18
俺の環境ではこうなる (Clear All Options)

var a = 1;
switch (true) {
 case a < 0:
  break;
 case a < 10:
  break;
 case a < 20:
  break;
 default:
}
 ↓
Error:
 Problem at line 2 character 9: Weird condition.
 switch (true) {

21 :Name_Not_Found:2011/05/28(土) 16:36:36.32 ID:???
>>19
while(true)で書くことは出来るだろうけど、while(true)でなきゃできないパターンもない
選択の余地があるならwhile(true)を積極的に使う理由もないと思う

22 :Name_Not_Found:2011/05/28(土) 16:44:48.25 ID:???
IE9, Firefox4, Safari5で100000回ループテストしてみたら、Firefox4ではswitchが若干早く、他はifの方が10〜20倍早かったです
と言っても、C2D-3GHzマシンの100000回ループで数十msしか違わないので可視性を重視した方が良さそうですね
ありがとうございました

23 :Name_Not_Found:2011/05/28(土) 16:49:18.38 ID:???
>>21
コード生成とか

24 :Name_Not_Found:2011/05/28(土) 16:53:44.43 ID:???
ANTLRだったかな
LL(k)のパーサージェネレーターだが膨大なwhileとswitch吐くの
さすがにJSでは現実的でないと思ってやめた

25 :Name_Not_Found:2011/05/28(土) 16:53:48.80 ID:???
>>23
詳しく

26 :Name_Not_Found:2011/05/28(土) 16:55:40.50 ID:???
while(true) は do-while で書けるから必要性に疑問

27 :Name_Not_Found:2011/05/28(土) 16:58:24.31 ID:???
>>26
ループ条件を先頭に書くか末尾に書くかの違い
俺はスクロールなしで見渡せる程度のループでなければdo-whileは使わん

28 :Name_Not_Found:2011/05/28(土) 17:00:34.28 ID:???
>>27
安全性よりも個人的な視認性を重視するのか

29 :Name_Not_Found:2011/05/28(土) 17:06:39.98 ID:???
>>28
安全性?
while(true) {
if (継続条件1) continue;
if (継続条件2) continue;
if (継続条件3) continue;
break;
}
これが危険だってんならforだって何だって危険だろ

30 :5:2011/05/28(土) 17:07:21.62 ID:???
>>7
有難う御座います。
できました。

var today = new Date();
var yyyy = today.getFullYear();
var mm = today.getMonth();
var dd = today.getDate();
var targetTime = new Date(yyyy,mm,dd,'18','02','00');

//mili seconds
var diff = targetTime - today;

var hogeH = Math.floor(diff/(60*60*1000));
var hogeM = Math.floor(diff/(60*1000));
var hogeS = Math.floor(diff/1000);
hogeM = hogeM - hogeH*60;
hogeS = hogeS - hogeH*60 - hogeM*60;

alert('残り'+hogeH +':'+hogeM+':'+hogeS);


31 :Name_Not_Found:2011/05/28(土) 17:17:55.58 ID:???
コーディング規約の話でもそうだけどさ
そう書いた方が理に適っているという推奨形と
言葉は悪いがバカでも間違えないようにこう書くなという制限形は
わけて考えるべきだと思う

strict modeでthisを参照できなくなるってのは後者なんだよね
あれはあれで、コンテキストをwindowその他で切り替えられるように
理解して使うならものすごく便利だったのに

32 :Name_Not_Found:2011/05/28(土) 17:43:03.24 ID:???
while(true) は do-while より明らかに遅い
do-while は条件式が一カ所にまとまっているから視認性もいいので do-while を使ってる


33 :Name_Not_Found:2011/05/28(土) 17:57:16.86 ID:???
>>31
理解して使えばいいっていうなら「eval でも with でも何でも使えばいい」ってことになるから不毛だと思う
「バカでも間違えないように」は理にかなっているし、究極的には全てを理解している人は何でも使っていいことになるわけだし

34 :Name_Not_Found:2011/05/28(土) 18:00:08.28 ID:???
strictでもコンテキスト切り替えはcall()で出来るような

35 :Name_Not_Found:2011/05/28(土) 18:14:12.10 ID:???
グローバルコードでthisを参照できるのは理にかなってるが、関数コードでthisを参照できるのは理にかなってなくね?

36 :Name_Not_Found:2011/05/29(日) 02:12:20.28 ID:???
>>29はデフォルトでループを抜け、特定条件時のみ継続する
これは理に適った書き方

だが誰もがこう書けるわけではないからwhile(true)を禁止する規約を作る
これは現場の配慮

条件分岐での||や&&の効率的な並べ方とか、考えて書ける奴は少ない

37 :Name_Not_Found:2011/05/29(日) 03:49:09.15 ID:???
>>29はdo-whileで済むコードをトリッキーな書き方にしてるだけだから
オレオレコード出して「書ける奴が少ない」といわれてもね…

do {
} while (継続条件1 || 継続条件2 || 継続条件3);

38 :Name_Not_Found:2011/05/29(日) 04:15:44.76 ID:???
while(true)は本来やらなくていいtrueを毎回評価してるところがスマートじゃないと思うよ
わざわざパフォーマンスを落とす必要もない

39 :Name_Not_Found:2011/05/29(日) 04:40:36.18 ID:???
デフォルトで抜けるっつうかtrueで抜けない処理して相殺してるよな

40 :Name_Not_Found:2011/05/29(日) 04:46:15.18 ID:???
IE6が全盛期だった頃はwhile(true)を使ったブラクラがあったよね

41 :Name_Not_Found:2011/05/29(日) 05:02:04.43 ID:???
タイマー代わりに使う奴もいたな

42 :Name_Not_Found:2011/05/29(日) 08:14:27.10 ID:???
基本的な質問かもしれませんが教えてください
ブラウザなどで無限ループさせてしまってダイアログが閉じても閉じても出る状態になったとき
ショートカットなどでJavaScriptの処理を中断させる方法はあるのでしょうか?

43 :Name_Not_Found:2011/05/29(日) 08:43:00.89 ID:???
>>42
Firefox使えば無問題

44 :Name_Not_Found:2011/05/29(日) 10:34:50.75 ID:???
>>37
それだと、ifの間に処理挟む場合に対応できないだろ

てかwhile(true)が禁止されてる所なんてあるのか…不便だな

45 :Name_Not_Found:2011/05/29(日) 10:39:48.60 ID:???
(処理() || true) && ~

46 :Name_Not_Found:2011/05/29(日) 10:42:06.61 ID:???
do-whileってよくわからないから使ったことないお

47 :Name_Not_Found:2011/05/29(日) 11:00:11.08 ID:???
continue のラベルを禁止されて、どう考えても一気に抜けた方がスマートなのに、
ループ制御をわざわざ変数でやらなきゃならなかったケースがあるな。
while(true)なんて、forのカッコに意味不明な処理突っ込むのに比べれば
「ああそうだねぇ(微笑)」で流せる程度の可愛いもんだ。自分が禁止されなければw

jslintでswitchが警告出すのは仕様。
作者は元々swtchを問題ないとしてて、switch関係でメール受けても「正しく使えば問題ない」と
返事もしてたけど、その返事したあとすぐあたりでjslintでswitch絡みのトラブルだかがあって、
「ああswtchってダメなんだ」と理解したってな話を何かで読んだ。

48 :Name_Not_Found:2011/05/29(日) 11:14:41.84 ID:???
何もしないやつを最後に持ってくるべきだけど
if (condition) {
elseif (condition2) {
} else { //condition3
}

なんかするやつの条件式が複雑な場合

if (condition) {
elseif (condition3) {
continue;
} else { //condition2
}

とかするけどね俺は

49 :Name_Not_Found:2011/05/29(日) 11:44:24.80 ID:???
>>42
ない。
ブラウザのプロセスを殺すか、Chromeとかの連続ダイアログを制限してくれるブラウザを使う。

50 :Name_Not_Found:2011/05/29(日) 12:24:37.80 ID:???
手元にあるプログラムだと、GIFデータの処理の中で
LZWから数値配列を展開する部分が

while (バイナリデータ > 0)
{
1.バイナリから今回調べるデータ(対象データ)以上の量を取り出し
2.取り出したデータから対象データを切り出し
3.対象データがクリアフラグなら、辞書を初期化してcontinue;
4.対象データが終了フラグなら、処理を終了(break)
5.辞書更新
6.対象データを数値化
}

こんな感じになってるけど、LZWデータが正しい限り、このループは必ず終了フラグで終わるので、
while の条件は (true) でもかまわない。
データが必ず正しいことが保証されていれば、whileでのチェックはやるだけ無駄。
この例に限らず、こういった「while(true)でいい(かまわない)」状況なんていくらでもある。

5,6のながーい処理をまとめてifに突っ込んで「対象データが終了フラグ以外なら」という
条件にすれば、終了条件をwhileに入れることはできるが、元々ループ内だけでだけで済んでた
対象データの変数の扱いを、ループの先頭まで持って行かなければならなくなる。
世の中、そういう「変数をわざわざ撒き散らす」プログラムがお好みの人ばかりじゃない。

51 :Name_Not_Found:2011/05/29(日) 12:36:51.44 ID:???
IE以外は連続ダイアログ抑制するんじゃないの?

52 :Name_Not_Found:2011/05/29(日) 12:43:08.73 ID:???
>>44
そういう場合も何か一つ継続条件を置くね

do {
 if (条件) {
  // 処理
  continue;
 } else if (条件) {
  // 処理
  continue;
 }
} while (継続条件);

continue を何度も使うなら break 一つの方がシンプルだと思うけどね
基本的に continue は使わない

53 :Name_Not_Found:2011/05/29(日) 12:50:29.51 ID:???
>>50
正確にはwhile(true)でもいいけど無駄
while(対象データが終了フラグ以外)にして他に条件があるならif(条件){break;}すればいい
全部の条件をwhile()に持ってくる必要はないよ

54 :Name_Not_Found:2011/05/29(日) 13:05:56.63 ID:dNZTwSiC
while(true){}はいいと思うけど
どうせならloop{}が欲しい
メソッドプロパティー以外のもう少し文法拡張してくれないかな

55 :Name_Not_Found:2011/05/29(日) 13:12:27.20 ID:???
これだけ議論が続いてもfor(;;)派が一人も出てこないことに絶望した

56 :Name_Not_Found:2011/05/29(日) 13:15:52.74 ID:???
for(;;)もwhile(1)も一緒やん

57 :Name_Not_Found:2011/05/29(日) 13:17:50.21 ID:???
だからこそ永遠に戦い続けるのだ

58 :Name_Not_Found:2011/05/29(日) 13:40:01.88 ID:???
thisについて質問です。

1: JavaScriptのthisは、applyなどされない状態で(仕様上)何の値を指すのか?

2: イベントリスナーのthisがelementを指すのは、仕様ではなくブラウザの実装によるものか?

以上、どうか教えてください。お願いします。

59 :Name_Not_Found:2011/05/29(日) 14:14:00.18 ID:???
厳格比較の===を使いたいんだけど、null || undefinedを判定したい時にちょっと困る。
if(x === y || ((x === null || x === undefined) && (y === null || y === undefined)))
と書かないといけないし。

実際のところは
if(x === y || (x == null && y == null))
という感じでもちゃんと動くのかな?

どちらにせよ面倒で嫌だ。

60 :Name_Not_Found:2011/05/29(日) 14:22:52.91 ID:???
>>59
x, y が同時に null, undefined の時を判定したいの?
x だけが null, undefined の時はスルー?

61 :Name_Not_Found:2011/05/29(日) 14:27:25.19 ID:???
>>59
x, y に期待する型がない?
例えば、x, y が同時に Number 型でない場合を期待するなら

if (typeof x !== 'number' && typeof y !== 'number')

62 :Name_Not_Found:2011/05/29(日) 14:50:53.99 ID:???
>>61
例えばだけど、xとyには"文字列"/null/undefinedが入っている。
なので、===を使わずに==で書いても全然問題ないんだが、
万が一数値などが紛れ込んでしまって
x == 0, y == "   "
みたいになったときに一致させたくない

63 :Name_Not_Found:2011/05/29(日) 15:07:32.19 ID:???
その例だと
if (typeof x !== 'String' && x !== null && x !== undefined)
で例外投げるべきじゃね?


64 :Name_Not_Found:2011/05/29(日) 15:17:47.44 ID:???
>>63
横やり失礼。数値と文字列とnullとundefinedが混在する場合にはどうすればいいかな

65 :Name_Not_Found:2011/05/29(日) 15:32:02.33 ID:???
>>63
例外を投げるのと、===を使うのとは別の話だと思う
その関数内で、比較のたびにその例外のコードを書くのはナンセンスだけど
関数の先頭で例外を飛ばしたから比較は==でいいかというと、そうではない

66 :Name_Not_Found:2011/05/29(日) 15:42:54.23 ID:???
1:仕様で決まっているのは()で明示的に呼び出すときだけ
コールバックのthisが何であるかは暗記もの

2:JavaScript1.0で規定、HTML5で再定義
IE9がDOM-Eventsをサポートした以上はどう考えてもいらない子

67 :Name_Not_Found:2011/05/29(日) 16:19:10.99 ID:???
http://www.overset.com/2008/08/30/animated-sortable-datagrid-jquery-plugin-jtps/
ここにあるテーブルをソートしたりするjQueryプラグインなんですが、
動的に追加したテーブルをソートすると次回からの
$("#tbltbody").empty();
が効かず、新たなデータも追加されません。
できるだけソースコードをいじらずに対処したいのですが、お知恵を貸して頂けませんか?

68 :Name_Not_Found:2011/05/29(日) 16:20:23.62 ID:???
HTML5が勧告されるまで標準仕様上は、先行実装状態?

69 :Name_Not_Found:2011/05/29(日) 16:21:53.91 ID:???
>>59
メイン処理が文字列なら
引数がundefinedかnullのときにさっさとデフォルト値でも入れろ

undefinedかnullのときに特別処理をするのなら
冒頭でチェックする必要なんかない
順番にString-String、undefined-nullのように分岐して
最後まで引っかからなかったら例外でも投げろ

70 :Name_Not_Found:2011/05/29(日) 16:25:55.01 ID:???
追記
ソートさえしなければページングなども追加したテーブルで正常に動きます。

71 :Name_Not_Found:2011/05/29(日) 17:52:13.79 ID:???
>>67
自己解決できそうです

ではでは

72 :Name_Not_Found:2011/05/29(日) 17:58:43.25 ID:???
>>69
だから、例外を投げるのと===を使うというのを同一視するなよ

引数に文字列が入っていることが確実なら==を使ってもいい、という話じゃないだろ?

73 :Name_Not_Found:2011/05/29(日) 18:03:16.32 ID:???
JSLintでは、===を使わなかった場合に警告を出すよね
作者も常に===を使うべき、と言っているし

if(x === y || (x == null && y == null)) が一番わかりやすいが、
これでもJSLintは警告を出す(==を使っているから)

if(x === y || ((x === undefined || x === null) && (y === undefined || y == null)))
こう書くしかないのかな。

74 :Name_Not_Found:2011/05/29(日) 18:28:59.51 ID:???
>>62を読むと null, undefined を厳密比較するのが目的ではなく、実際の処理で必要ない値を例外にしたいように読めるけど>>59とは別の人?
「処理を変えずに短く書きたい」だと工夫しようがないと思うよ
目的やその後の処理次第で最善の方法は変わる

75 :Name_Not_Found:2011/05/29(日) 18:34:07.75 ID:???
=== を使うってことは「型まで厳密に調べます」ってことなんだから、
typeofでもなんでも使いまくってチェックするようなコードに当然なる。
「厳密に調べたいけど簡単なコードにしたい」って、そりゃ矛盾してる。

76 :Name_Not_Found:2011/05/29(日) 18:36:16.87 ID:???
世の中には同じようなことを考える人がいて、
"use restrict";
で==の機能がまさにそれと同じにする提案がある

http://groups.google.com/group/jsmentors/browse_thread/thread/d552623443f70df9/539021aa0c4c8bfa?pli=1


77 :Name_Not_Found:2011/05/29(日) 18:36:37.87 ID:???
===を使うのは不用意な型変換によるバグを防ぐためのものなのに
いつの間にか==を使わないことが目的になるという本末転倒

undefinedでも、プロパティ値がundefinedであるのと
プロパティを持たない (p in obj) で意味が違うしな

78 :Name_Not_Found:2011/05/29(日) 18:38:57.80 ID:???
>>77
imgタグのalt=""と同じようなもので、lintを通すための書き方になるんだよな
でもlintで警告を消したい気持ちもよくわかる

79 :Name_Not_Found:2011/05/29(日) 18:39:37.02 ID:???
>>76
JavaScript 1.2なら==で型変換しない
時代が一周したな

80 :Name_Not_Found:2011/05/29(日) 18:42:10.43 ID:???
>>78
imgの@altはDTDに対して型妥当、つまり正しいインスタンスであるかのチェックなので
作法として使うべきかどうかとは別の話

81 :Name_Not_Found:2011/05/29(日) 18:43:16.00 ID:???
>>80
JSLintだって、withなどの危険な構文を使用していないことのチェックだぜ

82 :Name_Not_Found:2011/05/29(日) 18:43:38.40 ID:???
質問です。
JavaScriptを外部ファイルにしている場合、スクリプト内で
自身の外部ファイルのパスを取得する方法はあるのでしょうか?

getElementsByTagName("script") で取ってsrcを調べる時に、
それが厳密に「自分自身のパス」であるかどうかを調べるのに、
スクリプト内にパスを決め打ちで書くしかないのかどうかってことです。

83 :Name_Not_Found:2011/05/29(日) 18:47:55.16 ID:???
ここまで>>63への突っ込みなし
'String' とか null でない時に例外投げてどうするのとかw

84 :Name_Not_Found:2011/05/29(日) 18:48:59.12 ID:???
>>81
SGML/XMLのValidatorに通らないというのは、
文書型・要素型というクラスと照合した時に
データの中に妥当でないインスタンスが混じっているという意味なのであって
つまり型あり言語におけるTypeErrorと同義だ

with自体は構文違反でも何でもない

85 :Name_Not_Found:2011/05/29(日) 19:06:14.47 ID:???
>>62
まだいるのならその後の処理で必要な型を示してくれ
文字列処理なら文字列型以外を例外にすればいいだけ
null や undefined に限定して考えるから数値が来た場合に困るんだよ
次は true が来た場合にどうするんだ、ってことになる

86 :Name_Not_Found:2011/05/29(日) 19:51:27.31 ID:???
>>84
整形式違反はSyntaxError
妥当性違反はTypeError
と同じなんだよね

プログラムの作法を語る人の書くHTMLで信頼度も測れる
とJSLintのサイトを見たら、ひどかったw

87 :Name_Not_Found:2011/05/29(日) 22:27:32.14 ID:???
>>82
どうせ@deferを書いちゃいないだろうから
外部スクリプトのトップレベルでdocument.scripts[document.scripts.length-1].srcを見れば
そのスクリプトのURIだ

88 :Name_Not_Found:2011/05/29(日) 23:19:33.40 ID:???
コールバックという意味がwikiとか見てもよくわかりません
javascriptでコールバックを活用したプログラムの例を一つ教えてもらいたいです

89 :Name_Not_Found:2011/05/29(日) 23:44:30.51 ID:???
>>88
onclick

example:
var div = document.createElement("div");
div.style.backgroundColor = "red";
div.style.width = "100";
div.style.height = "100";
document.body.appendChild(div);

var callback = function() {
    alert("ボタンが押されたらcallbackされる関数");
};

div.onclick = callback;

90 :Name_Not_Found:2011/05/29(日) 23:49:50.67 ID:???
>>88
[0, 1, 2, 3].forEach(callback, this);
obj.watch('prop', callback);
document.addEventListener('click', callback, false);
document.createTreeWalker(document, 1, callback, false);
document.setUserData('my-data', { foo: 'bar' }, callback);
これらのコールバックのthisを全部当てたらほめてやる

91 :Name_Not_Found:2011/05/30(月) 01:05:51.88 ID:???
if (!a) {
}
JSLintってこれだとエラーがでないのが不思議

92 : 忍法帖【Lv=4,xxxP】 :2011/05/30(月) 03:41:37.52 ID:JiDZOoOn
無料で被リンク1万件。

FireFoxでエラーになる場合は、IEで登録して下さい。

http://p.tl/lX7P

93 :Name_Not_Found:2011/05/30(月) 05:35:28.45 ID:???
>87
なるほど。
対象のスクリプトはどうせ同サーバなんで@defer書く意味はほぼないですし、
その方向で調べてみます。ありがとうございました。

94 :Name_Not_Found:2011/05/30(月) 08:49:35.25 ID:???
Javascript使うまでも無いのかもしれませんが
対象のiframeの中を更新するにはどうしたらいいのでしょうか?

95 :Name_Not_Found:2011/05/30(月) 09:07:55.16 ID:???
iframeのlocationでreload()

96 :Name_Not_Found:2011/05/30(月) 09:22:15.53 ID:???
ありがとうございます!

97 :Name_Not_Found:2011/05/30(月) 15:46:37.85 ID:???
>>91
問題ないと思うけどなんで不思議?

98 :Name_Not_Found:2011/05/30(月) 15:55:36.17 ID:???
>>91
それだけならエラー出るよ
再現しないコードを貼る人が多くて困る

99 :Name_Not_Found:2011/05/30(月) 17:15:32.18 ID:???
>>97
==の曖昧なチェックはNGなのに!aはOKなのって不思議じゃない?

>>98
そこは勝手に補完しろよ別に質問なわけじゃないんだから


100 :Name_Not_Found:2011/05/30(月) 17:21:09.50 ID:???
>>97
型に厳密ではないからじゃねえの
ま、どうせ暗黙の型変換がはしる文脈なら利用した方が
明示的に型変換しておくより速い場合もあるけどな

引き合いに出して悪いが>>89なんかCSSのエラー補正まで走らせてるんだぜ
それに比べりゃかわいいもんだ

101 :Name_Not_Found:2011/05/30(月) 17:40:55.46 ID:???
location.hashがクロスブラウザで動かすにはハッシュをencodeURIComponentしてれば大丈夫でしょうか?

102 :Name_Not_Found:2011/05/30(月) 18:15:32.97 ID:???
encodeURIComponent(location.hash) にしたら
バグのある Firefox 以外は二重エンコードされると思うよ

103 :Name_Not_Found:2011/05/30(月) 18:16:39.42 ID:???
>>99
! は明示的な型変換だからじゃないか

104 :Name_Not_Found:2011/05/30(月) 18:29:39.46 ID:???
>>101
いったんdecodeしてからもっかいencodeしる

105 :Name_Not_Found:2011/05/30(月) 18:35:40.73 ID:???
os/ブラウザ WinXpSP3 Chrome11
HTMLTableRowElement等で高さの変更はできないのでしょうか?
表の中の特定行だけ高さを変えたいのですがググっても分かりませんでした。
<table onclick="this.childNodes[0].childNodes[0].style.height=0"…みたいにしたいです。

106 :Name_Not_Found:2011/05/30(月) 18:42:43.10 ID:???
!は論理演算子。最初から「何でも」受け取って「ブール」を返すものなんだから、
何を渡そうと文句を言うわきゃない。

これに文句を言うとなると、同じ論理演算子、たとえば論理和で

var b = ture;
var n = 3;

if (b || n){} /* "||" 演算子が別の型(boolとnumber)を受け取ってる! */

なんてものをチェックしなきゃならん。アホくさい。

107 :Name_Not_Found:2011/05/30(月) 19:03:31.59 ID:???
>>104
デコード後の文字列に%が含まれてたらFirefoxで化けるんじゃない
matchとかsplitで取った方が

108 :Name_Not_Found:2011/05/30(月) 19:24:41.23 ID:???
ハッシュに#が含まれてたらどうするの?

109 :Name_Not_Found:2011/05/30(月) 19:28:27.87 ID:???
>>105
event.currentTarget.tBodies[0].rows[0].style.height

110 :Name_Not_Found:2011/05/30(月) 19:30:20.31 ID:???
>>106
論点はそこじゃない
===での型厳密比較を推奨するのなら
!""=>true, !0=>true, !NaN=>true, !undefined=>true, !null=>true
↑のような型変換規則を暗記しなきゃいけないブール値変換そのものにも
注意を出さないと一貫性に欠ける、て話じゃないの

俺もこれぐらい普通に暗記しろとは思うよ

111 :Name_Not_Found:2011/05/30(月) 19:33:20.70 ID:???
>>107
それは前段階で多重エスケープされているというマヌケな仕様のせいなので無視
サニタイズ脳の被害者に多い

>>108
別に何てことないけど

112 :Name_Not_Found:2011/05/30(月) 19:39:18.03 ID:???
>>110
だからその理屈はおかしいって話じゃないの
! で Boolean 型に型変換されるのは明らか
これが認められないなら if 文でさえ使えないよ?

113 :Name_Not_Found:2011/05/30(月) 19:41:11.90 ID:???
URIの規定上はフラグメント識別子に # 含まれてても問題は無いんじゃない

>>111
文字列中に % が登場する=多重エスケープ と片づけるのはどうかと思うけど

114 :Name_Not_Found:2011/05/30(月) 19:43:28.89 ID:???
>>112
その通り、同意するよ
だから俺もJSLintのアレは好きじゃないんだ

115 :Name_Not_Found:2011/05/30(月) 19:48:49.57 ID:???
>>113
URIComponentとして渡された時点で、適切にpercent encodingされているべきだろ
それをdecodeしたときに出てくる%はデータの一部であり、percent encodingではない
これが大前提だ

もしdecodeして出てくる%がさらにpercent encodingの一部であるなら
多重エスケープ以外にありえない
しかし、こちらは何回decodeすれば正しいデータが出てくるのか分からない
そんなデータは無視しなければ危険だろ

116 :107:2011/05/30(月) 19:50:05.04 ID:???
ごめんPHPと混同してた
splitじゃあかんね

117 :think49 ◆bKk/qcAKuM :2011/05/30(月) 19:54:03.67 ID:???
>>113
http://hoge.example/#foo#piyo は RFC3986 (3.5 Fragment) に違反しています。http://hoge.example/#ほげ も違反。
ただ、多くのブラウザはこれらを許容する実装ですね。初めの # 以降をURLハッシュと認識します。

118 :Name_Not_Found:2011/05/30(月) 19:59:25.11 ID:???
>>115
location.hash を参照したときに Firefox だけ、デコード後の文字列が返される問題について だと思うけど

encodeURIComponent(decodeURIComponent(location.hash)) だと
%DD が含まれていたら、やっぱり Firefox では違う結果になってしまう

119 :107:2011/05/30(月) 20:06:19.83 ID:???
>>117
じゃあ正しいURIならsplitでも問題ないのか
たびたびすまん

120 :Name_Not_Found:2011/05/30(月) 20:37:22.63 ID:???
このスレ的にはどうやってハッシュを取るのが一番なのですか?

121 :Name_Not_Found:2011/05/30(月) 20:38:18.05 ID:???
var fragment = /(#.+)$/.exec(location.href)[1];でFA?

122 :105:2011/05/30(月) 20:40:08.57 ID:???
>>109
レスありがとうございます。本当は行を隠そうと思ったのですが両方動きました。
以下のようなケースではstyle.heightの部分は0には設定できないのは仕様でしょうか?
<table border=1 onclick="event.currentTarget.tBodies[0].rows[0].style.height=100"><tr><td>a</td><td>b</td></tr></table>
<table border=1 onclick="this.childNodes[0].childNodes[0].style.height=100"><tr><td>a</td><td>b</td></tr></table>


123 :Name_Not_Found:2011/05/30(月) 20:51:52.45 ID:???
location.hrefってバグがあるらしいからwindow.location.hrefで書けって言われたけどバグって何?

124 :Name_Not_Found:2011/05/30(月) 21:06:04.57 ID:???
>>122
そのコードの100を0に替えたら普通に設定されたけど
見た目の話をしてる? ならスレチ
スレチだけど単位は0以外のときは必須だよ

XHTMLだとtbody要素が無かったりするから、Element.rows[0].style.heightを使った方がいいかもしれない

125 :Name_Not_Found:2011/05/30(月) 21:22:44.65 ID:???
>>122
単位を省略してはいけない。<tbody> も省略しない方がいい。
http://jsfiddle.net/KxAHc/

126 :105:2011/05/30(月) 21:34:55.19 ID:???
>>124
スレチなのに教えてくださり有難うございます。
見た目0にならないのは違うかもしれないけどHTMLの仕様と思っておきます。失礼しました。

127 :think49 ◆bKk/qcAKuM :2011/05/30(月) 21:41:37.90 ID:???
>>119
確かに RFC3986 規定通りの URI なら location.href.split('#')[1] でハッシュがとれるので URI を管理できるのならそれでもいいかもですね。
実際には規定に準拠した URI ばかりではないです。不特定の URI を相手取るなら # 以降のすべての文字をハッシュ値とする実装が妥当だと思います。


128 :105:2011/05/30(月) 21:44:08.19 ID:???
>>125
申し訳ないです。。ググってみるとローカルのファイルでもアップロードできるんですね。
気をつけます。今度こそ失礼・・

129 :Name_Not_Found:2011/05/30(月) 22:21:07.26 ID:???
ユーザーが適当にURIに#をつけてくるケースもあるから

130 :Name_Not_Found:2011/05/31(火) 00:45:00.51 ID:???
<script language="JavaScript">
var h=$PL[70];var timerID;
function () {
var dt = new Date();
dt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate()+1);
h = $DATE + dt;
}
</script>
$PL[70]というPerlで定められた変数の中に1日が終わるまでの秒数を代入したいです
こんな感じで作ってみたのですが動作しません;;
どこをなおせばいいでしょうか?


131 :Name_Not_Found:2011/05/31(火) 00:51:47.81 ID:???
JavaScriptはサーバサイドじゃないぞ。ページがブラウザとかに読み込まれないと動かない。
Perlでその数値を使いたいならPerl側で計算しないと。

132 :Name_Not_Found:2011/05/31(火) 01:00:26.41 ID:???
>>130
text/htmlでそのコードを文字列として吐きなよ
当然変数の部分は文字列で使えるように処理してね

133 :130:2011/05/31(火) 01:03:06.94 ID:???
1度クリックすると翌日までクリックできないボタンを作ろうとしてます
それで、FORMで値を受け取ったときに同時に$PL[70]の中に12時になるまでの
残り秒数を代入したいです
ブラウザには読み込まれるので計算してくれるとは思うのですが・・・

134 :Name_Not_Found:2011/05/31(火) 01:30:18.56 ID:???
クッキーでいいんじゃね?
どうせそんな作りこんでも対策なんて完璧な不可能なんだし

135 :Name_Not_Found:2011/05/31(火) 01:31:20.88 ID:???
日本語がおかしかったが察してくれ・・・

136 :Name_Not_Found:2011/05/31(火) 04:29:27.46 ID:???
var hoge = 'けちょんてちょん';
"フリーザ、貴様は ' このベジータ様が hoge に ' 倒す!"
とここにhogeを入れたいのですが、どーにも上手くいきません

どのように記述したらよいのでしょうか?

137 :Name_Not_Found:2011/05/31(火) 04:49:52.58 ID:???
"フリーザ、貴様は ' このベジータ様が hoge に ' 倒す!"
表記→フリーザ、貴様は ' このベジータ様がhogeに ' 倒す!

"フリーザ、貴様は ' このベジータ様が "+hoge+" に ' 倒す!"
表記→フリーザ、貴様は ' このベジーた様がけちょんけちょんに ' 倒す!

138 :Name_Not_Found:2011/05/31(火) 05:50:11.65 ID:???
ありがとうございます
解決しました、感謝ですー

139 :Name_Not_Found:2011/05/31(火) 15:48:40.51 ID:???
d

140 :Name_Not_Found:2011/05/31(火) 17:38:21.00 ID:???
>>130
大方cgiゲームってとこだろ
var timeID:
がいらない
それで動く

141 :Name_Not_Found:2011/06/01(水) 11:58:37.03 ID:???
$("aaa").test();

jqueryみたいに↑みたいな形で動くコードってどうかくのでしょうか?
↑のコードでaaaという文字列をalertしたいのです

142 :Name_Not_Found:2011/06/01(水) 12:03:51.76 ID:???
String.prototype.test = function() {
alert(this);
};

function $(str) {
return str;
}

$("aaa").test();

143 :Name_Not_Found:2011/06/01(水) 12:16:35.97 ID:???
String.prototype.test

Stringが型
prototypeはおまじない
testがメソッド

function $(str)

$が値を受け取る為の専用メソッド
っていう風に認識してよいでしょうか?

144 :Name_Not_Found:2011/06/01(水) 12:21:18.93 ID:???
$("aaa").test().test().test().test();
こんな風に続けていきたいなら違った回答になるが。

$ = function (str) { return this;}
$.prototype.test = function(){
return this;
};


145 :Name_Not_Found:2011/06/01(水) 12:28:26.79 ID:???
>String.prototype.test
Stringオブジェクトのプロトタイプベースでの拡張方法
クラスベース(Javaとか)はStringをスーパークラスとして継承するが
プロトタイプベースはこのように後から取ってくっつけたような記法が可能

>function $(str)
多くのフレームワークでは
var $ = document.getElementById;
という感じにdocument.getElementByIdのショートカットになっている

146 :Name_Not_Found:2011/06/01(水) 13:20:01.01 ID:???
文字通りの意味でなら

var $ = function(s) {
return { str : s, test : function(){ alert(this.str); } };
};

$("aaa").test();

これでも要求通りに動く。ただし汎用性はあまりない。

JavaScriptにはメソッドの実装方法が複数あるけど、
ここで実例挙げて聞いても直接の参考にはならんと思うよ。
ここで聞いて参考になるのはブラウザ仕様とかだね。
JavaScriptの基本的な組み方は自分で勉強するしか。

147 :Name_Not_Found:2011/06/01(水) 14:42:03.46 ID:drK/+zi/
循環参照ってわざとやる場合、
具体的にどんな使い道がありますか?
ある程度ggりましたが分かりません
教えてください

148 :Name_Not_Found:2011/06/01(水) 15:55:41.53 ID:???
・単純な例
 時計の秒針が1秒ずつずれている画像60枚があって、
 1秒ごとに次の画像を表示することで、秒針が回っているように見せるとする。
 データの構造が、0秒の画像の次は1秒の画像、1の次は2、2の次は3を指していて、
 最後の59の次が0を指すようになっていれば、
 プログラム側では「1秒ごとに"次"を表示する」で済む。

・DOMとかでよくある例
 データ構造に親子関係がある場合、親は当然、自分の子供に対する参照を持つから、
 親を対象にデータをいじってる時に子供を操作するのは簡単。
 逆に、子供をいじっていて、その子供の親を操作したくなった時に、
 子供が親への参照を持っていないと、親がどれなのか、
 プログラマが保存しとくなり毎回調べるなりする必要がある。
 子供が親に対する参照を持っていれば、子供から親がすぐ分かる。

149 :Name_Not_Found:2011/06/01(水) 19:36:12.46 ID:???
そういう意味か
スクリプトエンジンとDOMエンジンの循環参照のことだと思ってた

150 :Name_Not_Found:2011/06/01(水) 20:02:22.15 ID:Ep16l2so
>>149
そういうのもあるよ
以前のSafari(3か2くらい)が実際そうだった

151 :Name_Not_Found:2011/06/01(水) 20:28:57.22 ID:???
循環参照はガベージコレクションの鬼門だから
迂闊に近寄らない方がいい

152 :Name_Not_Found:2011/06/01(水) 22:10:53.98 ID:???
>>151
>>149のように異なるエンジンを挟む場合限定と思っていいかな
同一エンジン内の循環参照はガベージコレクションが面倒を見てくれると思ってた

153 :Name_Not_Found:2011/06/01(水) 22:15:12.73 ID:???
原書のサイ6版は今年の3月に出ているけれど、翻訳されたのが出るはいつ頃だろうか?

154 :Name_Not_Found:2011/06/01(水) 22:39:04.82 ID:???
>>152
http://www.dodgson.org/omo/t/?date=20060507

155 :Name_Not_Found:2011/06/01(水) 22:49:52.12 ID:???
>>154
ありがとう
C++を読めない俺は半分も理解できなかったけど解決していない問題が異種環境間GCという結論はわかった
異種環境間GCでなければ問題なさそうだね

156 :Name_Not_Found:2011/06/01(水) 22:53:08.17 ID:???
>>155
もともとはXPCOMという同環境内でも巡回参照でリークが起きていたという話

157 :Name_Not_Found:2011/06/01(水) 23:27:34.12 ID:???
>>156
そうだったのか…
同環境でも安心できないんだな、ありがとう

158 :Name_Not_Found:2011/06/02(木) 00:30:41.03 ID:???
http://www.cityjp.com/javascript/form/cookieform.html
ここのソースを参考にクッキーについて書いてるのですが
疑問に思ったことがあって、なぜevalを使用しているのでしょうか?



159 :Name_Not_Found:2011/06/02(木) 00:33:48.00 ID:???
書いた奴が無知だから

160 :Name_Not_Found:2011/06/02(木) 00:36:39.40 ID:???
>>158
初心者は eval で型変換する間違いを犯すから

161 :Name_Not_Found:2011/06/02(木) 00:38:23.32 ID:???
フォームでevalとかマジでありえんですわ

162 :Name_Not_Found:2011/06/02(木) 00:46:54.23 ID:???
>>158
ヲチ板でやれ

163 :Name_Not_Found:2011/06/02(木) 00:47:55.05 ID:???
eval('document.'+FormNameTemp+';')て感動したわ
頭の柔らかい人間っているんだなー

配列をfor-inで回すとかtoGMTStringとか「やってはいけない」の宝庫だから
そこに書いてあることをやらないようにすれば、逆に力つくんじゃね

164 :Name_Not_Found:2011/06/02(木) 00:52:34.94 ID:???
5年〜6年位前はそんな感じのスクリプトばっかりだったな。


165 :Name_Not_Found:2011/06/02(木) 00:57:09.85 ID:???
そうかなあ
10年前でもまともなのはまともだったよ
とほほコピペの功罪の罪の部分は、やっぱ大きいと思う

166 :Name_Not_Found:2011/06/02(木) 01:01:58.40 ID:???
>>159-165
参考になりました。ありがとうございます


167 :Name_Not_Found:2011/06/02(木) 01:31:28.23 ID:???
この場合はeval()で合ってるよ
eval('document.'+FormNameTemp+';');
こうしないとフォーム取得できないでしょ

document.forms[FormNameTemp];
こっち規格外でしょ?


168 :Name_Not_Found:2011/06/02(木) 01:46:32.17 ID:???
>>167
     /V\ ・・・
    /◎;;;,;,,,,ヽ document.FormNameも規格外でしょ?というのはおいといて
 _ ム::::(,,゚Д゚)::|  なんでdocument[FormNameTemp]にしないの
ヽツ.(ノ:::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'

169 :Name_Not_Found:2011/06/02(木) 01:47:39.05 ID:???
id付けるなりすりゃいいだろ。
evalを使わない取り方なんていくらでもある。

170 :Name_Not_Found:2011/06/02(木) 01:55:51.65 ID:???
Javascript始めたばかりで何が出来るかを聞きたいのですが

例えば画面上にストップウォッチがあって、記録ボタンをクリックするたびにクッキーにクリックした時刻を追加し
それと同時に<div>〜</div>で囲まれたところ保存されたクッキーを表示

なんてことできますか?
CGIとかだとF5とかで画面全体を更新しないとクッキー表示の更新できませんが

171 :Name_Not_Found:2011/06/02(木) 02:03:32.51 ID:???
onclickする度にcookie保存→cookieを呼び出しの順番でDOM操作で表示すりゃできる。
更にAjaxならクッキー所か<div>〜</div>で囲まれたところ「だけ」をサーバーと通信して更新する事もできるんだな。
javascriptは極めると自分の世界を作る魔法使いになれるよw

172 :Name_Not_Found:2011/06/02(木) 02:04:01.23 ID:???
>>170
できます。
CGIもF5もAjaxもいらんでしょうそれ

173 :Name_Not_Found:2011/06/02(木) 02:06:13.64 ID:???
なんてこった俺は魔法使いだったのか

174 :Name_Not_Found:2011/06/02(木) 02:46:29.29 ID:???
>>167
document.forms[FormNameTemp]は由緒正しいDOM-HTMLだが

あーだからか
フォーム操作にgetElementByIdだのgetElementsByNameだの
余計なのを使うのがちらほらいるなーと思ってたんだ

175 :Name_Not_Found:2011/06/02(木) 04:05:20.16 ID:???
フォームのフィールド名はフォーム単位だから
<form id="A"><input name="n"></form>
<form id="B"><input name="n"></form>
document.forms["A"].elements["n"]とdocument.forms["B"].elements["n"]は違う

ところがdocument.getElementsByName("n")なんぞで一緒くたにする奴が意外に多い
しかも<meta name="n">とか<param name="n">とかも拾ってしまうが、分かってんだろうか

一方で<input id="n1">みたいにいちいちIDを振る奴がいる
labelを使いたいわけでもなく、nameの代わりだと勘違いしているらしい
フォーム内スコープのnameに対し、IDは言わばグローバル変数をまき散らすようなもん
そもそもnameがなければ送信対象にならないぞ、と

176 :Name_Not_Found:2011/06/02(木) 04:07:59.56 ID:???
>>167
document.forms は HTML5 にあると何度いえば...
name は唯一を保証できないから id つけて getElementById を推奨するけどね
name にまつわる旧来からの参照法はいくつかのブラウザで実装してないパターンがあるし、今更使う意味もないと思う

177 :Name_Not_Found:2011/06/02(木) 04:09:28.95 ID:???
>>175
form@name もグローバル汚すこと知らないの?

178 :Name_Not_Found:2011/06/02(木) 05:28:30.02 ID:???
送信前の検査程度の極小スクリプトなんて、
よほど外道なことしてなければ、実装方法なんてどうでもいい。

JavaScript前提のAjaxとかなら、起動時に自分でフォーム組み立てて
appendChildしてしまえば、個々のフォームにidもnameもいらん。
ついでに、ブラウザのJavaScriptがoffのくせに「動きません」なんて
問い合わせしてくる奴も防止できるw

179 :Name_Not_Found:2011/06/02(木) 06:23:48.73 ID:???
>>175
form/@nameはform/@idと同じ名前空間であり
後方互換性で残されているだけだなんてHTMLの基礎知識だろ
そんな話をした覚えはない
入力フィールドの@nameはそれとは違うと言っている

>>178
カスだな
Ajaxなんぞなくてもformに@idなんかいらん

180 :Name_Not_Found:2011/06/02(木) 07:08:06.84 ID:???
>>179
「<form>には」idが普通なら必要。
普通でない作り方してる奴は知らん。

とりあえず、カスがいるとすれば、このスレ的にはまずお前が第一だよ。

181 :177:2011/06/02(木) 12:04:51.76 ID:???
ごめん。>>175の解釈を間違ってたので>>177は撤回。

182 :Name_Not_Found:2011/06/02(木) 12:12:07.41 ID:???
for var i in aみたいな書き方って5大最新ブラウザで使えますか?
firefoxしか対応してない系ですか?

183 :Name_Not_Found:2011/06/02(木) 12:14:20.98 ID:???
自分で試せばわかること

184 :Name_Not_Found:2011/06/02(木) 13:26:37.52 ID:???
http://code.google.com/intl/ja/apis/maps/documentation/javascript/overlays.html#GroundOverlaysで画像を表示する位置を千葉に移したいのですが
経度と緯度を変更しちゃうと画像が表示されません
new google.maps.LatLngBoundsに渡す new google.maps.LatLngに問題あると思うのですが、画像が表示される経度と緯度はどうやって求めるのでしょうか?

var newark = new google.maps.LatLng(35.607267,140.106291);
var imageBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(35.607267,140.106291),
new google.maps.LatLng(35.6024276938132,140.1240062713623));

var myOptions = {
zoom: 13,
center: newark,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

var oldmap = new google.maps.GroundOverlay(
"http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg",
imageBounds);
oldmap.setMap(map);

185 :184:2011/06/02(木) 14:30:34.47 ID:???
自己解決しました

186 :Name_Not_Found:2011/06/02(木) 15:52:40.14 ID:???
自己解決したコード貼ってきなよ

187 :Name_Not_Found:2011/06/02(木) 16:04:56.12 ID:???
いやです

188 :Name_Not_Found:2011/06/02(木) 16:17:41.88 ID:???
つまり自分で試して分かったからここに書く必要ないって事ですね

189 :Name_Not_Found:2011/06/02(木) 17:12:00.26 ID:???
教えてもらうのはいいけど
教えてあげるのは嫌やでぇーという事ですね

190 :Name_Not_Found:2011/06/02(木) 17:37:51.07 ID:???
あきらめました(=他でなんとかします)ってオチだったりしてなw

191 :Name_Not_Found:2011/06/02(木) 19:52:50.54 ID:???
<div>
hoge
</div>
の部分にinnerHTMLをするとhogeの部分は消えてしまいますが
消さずにinnerHTMLで追加するような事はできますか?

192 :Name_Not_Found:2011/06/02(木) 20:00:27.38 ID:???
>>191
+=

193 :Name_Not_Found:2011/06/02(木) 20:01:07.57 ID:???
>>187
じゃあ最初から書き込むな、検索の邪魔、リソースのムダ

>>191
できます
他のdivを用意してidふって、そこにinnerHTMLでおk

<div>
hoge
</div>
<duv id="fuga">
</div>

以下JS
document.getElementById('fuga').innerHTML = 'ふがふが';



194 :Name_Not_Found:2011/06/02(木) 20:03:02.06 ID:???
>>192
>>193
ありがとうございます!
二つのやり方を使い分けてみます!

195 :Name_Not_Found:2011/06/02(木) 20:10:20.61 ID:???
>>194
文字を繋げたいなら<p>や<span>でもいいし>>192みたいに連結してもいいよ

duvは間違え。divです。念のため

196 :Name_Not_Found:2011/06/02(木) 20:14:04.72 ID:???
>>195
なるほどー
このスレって親切な人多いですね、ちょっと感動しました

197 :Name_Not_Found:2011/06/02(木) 20:45:55.70 ID:???
たまに>>183みたいなのもいるよ

198 :Name_Not_Found:2011/06/02(木) 20:50:02.91 ID:???
確かにそうだな
定期的に現れる煽り厨房だからスルー推奨です

>>1
(1) 質問にならない投稿はご遠慮ください

199 :Name_Not_Found:2011/06/02(木) 23:15:41.16 ID:???
オブジェクトについて質問です

var test = new Object();
test.one = "iti";
window.alert(test.one);

これで「iti」という結果が出ます
この場合のtest.oneの型は【オブジェクト.プロパティ】ですが
【オブジェクト.オブジェクト.プロパティ】は可能でしょうか?
上の例でもvar one = new Object(); と追加したところ、test.one.two = "ni"; と格納した後
アラートで試してみましたが何も表示されませんでした。
ご教授お願いします

200 :Name_Not_Found:2011/06/02(木) 23:19:10.19 ID:XzNqn6Ve
window.focus();
alert('アラート');
というサンプルプログラムでwindow.focus();って消しても
問題ないみたいなんですが、window.focus();がよく分かりません
window.focus();って何ですか?

201 :Name_Not_Found:2011/06/02(木) 23:26:01.06 ID:???
>>200
http://javascriptist.net/ref/window.focus.html

202 :Name_Not_Found:2011/06/02(木) 23:38:47.88 ID:???
>>199
test.one と one は別物。後は分かるな

203 :Name_Not_Found:2011/06/02(木) 23:47:14.76 ID:XzNqn6Ve
>>200
window.focus();はいらないってことでいいですか?

204 :Name_Not_Found:2011/06/02(木) 23:48:18.90 ID:XzNqn6Ve
アンカミス
>>200でなく>>201

205 :Name_Not_Found:2011/06/03(金) 03:41:53.80 ID:???
まあタブとAjaxな時代の今ではあんまりいらない
・・・のかな?

>>201
>// 既にフォーカスされているので特に何も起こりません
どんなサンプルだw

206 :Name_Not_Found:2011/06/03(金) 05:08:56.46 ID:???
>>199
alertのダイアログ自体が表示されないのであればエラーで止まってるわけで
まずはエラーの確認の仕方をググって調べよう

var test = new Object();
test.one = new Object();
test.one.two = "ni";
alert(test.one.two);

207 :Name_Not_Found:2011/06/03(金) 14:57:08.97 ID:hl1USVBO
以前中高生向けに教えたときは
式とかで説明してもあんまり伝わらなかったけど
リテラルでインデントして書いて見せたら一発だったな、こう

var test = {
    one : {
        two : "ni"
    }
};

208 :Name_Not_Found:2011/06/03(金) 14:59:59.84 ID:???
new Objectなんて書く人って珍しいな
いまどき{}じゃないのか

209 :Name_Not_Found:2011/06/03(金) 15:00:13.28 ID:???
>>199じゃないけど
それ呼び出す時test["one"]["two"]でniが表示されるでいいんだよね?

210 :Name_Not_Found:2011/06/03(金) 15:01:00.10 ID:???
すみません・・・、配列とオブジェクトのプロパティ勘違いしてました・・・。

211 :Name_Not_Found:2011/06/03(金) 15:05:21.25 ID:???
var testにjsonを代入して
test.aで"こんにちは"
test.bで"こんばんは"って表示できるようにしたいのですが
var test = [
{
"a":"こんにちは",
"b":"こんばんは"
}]
alert(test.a);
っとやっても出来ませんでした
たすけてください

212 :Name_Not_Found:2011/06/03(金) 15:08:51.32 ID:hl1USVBO
>>211
なぜ配列にしているのか

213 :Name_Not_Found:2011/06/03(金) 15:18:34.70 ID:???
>>209-210
配列もオブジェクトだから
そういう呼び出し方でもいいよ

214 :Name_Not_Found:2011/06/03(金) 16:25:18.44 ID:???
thickboxを使用して子ウインドを作成しています。
子ウインドからPOSTでサーバにデータを送信後に、子を閉じて
親のウインドを1度リロードしたいのですがどのようにすればよいですか?
POSTされたデータはDB操作を行い、操作後に親のウインドをリロードする必要があります。
Javaサーブレットを使用しているのでdoPost()関数内で上記のこと行うことは可能でしょうか?

215 :Name_Not_Found:2011/06/03(金) 16:40:44.83 ID:???
またきみか

216 :Name_Not_Found:2011/06/03(金) 16:48:32.02 ID:???
>>215

>>193

217 :Name_Not_Found:2011/06/03(金) 16:55:01.31 ID:???
>>216
http://unkar.org/r/hp/1303790568/728,744

218 :Name_Not_Found:2011/06/03(金) 17:42:55.98 ID:???
初心者なんですが
document.cookie = 'example=value1;';←1としておく
document.cookie = 'example=value2;';←2としておく
..
↑のようなモノをX秒後に1から2へ、またX秒後に2から〜へ‥という風にcookieをセットして、
最後まで行ったらまた1へ戻って繰り返すようなモノが作りたいんですが、どのようにすればいいですか?
ちなみにvalueの数字はバラバラです。
ブックマークレットで作成可能ですか?

219 :Name_Not_Found:2011/06/03(金) 19:38:24.31 ID:???
配列とsetIntervalで作れるでしょう
ブックマークレット余裕です

220 :Name_Not_Found:2011/06/03(金) 20:44:38.87 ID:???
save, load処理を行うゲームを、何かしらのscriptで作ろうとしています;

>別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です
と、テンプレにありますがjavascriptでは、ローカルで保存してあるjavascriptファイルを実行し、
同じくローカルに保存してあるファイルを読み書きすることも不可能でしょうか?

221 :Name_Not_Found:2011/06/03(金) 21:04:07.19 ID:???
なぜ試さない

222 :Name_Not_Found:2011/06/03(金) 21:23:10.10 ID:???
試してみて以下の点は分かったつもりでいます。
・読み込みだけならばできそう
・activXを使えば読み書き共に可能
ただ、activXは可能ならば避けた上で読み書き共に行いたいため質問しました。
言葉足らずで申し訳ありません。


223 :Name_Not_Found:2011/06/03(金) 21:33:34.39 ID:???
アクティーフX

224 :Name_Not_Found:2011/06/03(金) 21:53:34.92 ID:???
情報は小出しにするなよ。

Cookieやlocalstorageじゃダメなのか?ブラウザ毎に固定になるけど。

鯖を通さない保存もできるらしいけど(flashのASとか。詳しくはぐぐって)、
ユーザーがクリックや保存場所の指定をする必要があるから、(セキュリティ的には当然だけど。)
それなら復活の呪文形式(コピペ)でいいじゃん。

225 :Name_Not_Found:2011/06/03(金) 21:59:55.25 ID:???
>>199関連だけどvalueOfとかtoStringとかいじればC++の型キャストオーバーロードみたいなことができるんだ
初めて知った

226 :Name_Not_Found:2011/06/03(金) 23:42:47.95 ID:???
>>220
読み書き時にファイルの開く・保存ウインドウが出てもいいなら
不可能ではない

227 :Name_Not_Found:2011/06/03(金) 23:46:40.43 ID:???
DOM RangeにtoStringがわざわざ定義されてるのもそのせい
WebIDLならstringifierで片付けられるが

228 :Name_Not_Found:2011/06/03(金) 23:51:00.45 ID:???
javascriptでweb目覚ましってつくれますか??

229 :Name_Not_Found:2011/06/03(金) 23:51:46.96 ID:???
はい

230 :Name_Not_Found:2011/06/03(金) 23:53:32.28 ID:???
while(1)alert("起きろ");

231 :Name_Not_Found:2011/06/04(土) 00:00:46.91 ID:???
>>228
こんな感じで組んでみたんですが・・・
途中で無限ループによりブラウザが落ちます。
助言いただけたらありがたいです。
function mestart(){
supervisor = prompt("時間を入力してください(半角英数字24時間表記)");
supervisor2 = prompt("分を入力してください");
mezamasi();
}

function mezamasi(){
a=now.getHours();
b=now.getMinutes();
if(a == supervisor && b == supervisor2){
sound2Play();
}
else{
setInterval("mezamasi()",1000);
}
}

232 :Name_Not_Found:2011/06/04(土) 00:09:37.88 ID:???
timeout

233 :Name_Not_Found:2011/06/04(土) 00:27:06.26 ID:???
timeridをオーバーフローさせた奴は手をあげろ

234 :Name_Not_Found:2011/06/04(土) 00:28:25.48 ID:???


235 :Name_Not_Found:2011/06/04(土) 01:38:49.27 ID:???
setTimeoutで入力した時間を指定すると・・・多分時間がズレるんだろうな


236 :Name_Not_Found:2011/06/04(土) 02:56:35.77 ID:zTFEClr0
外部サイトを子ウィンドウで開き、サイトの内容を取得したいのですが、JavaScriptでは実現不可能でしょうか?
もし不可能であれば、他にどのような方法で取得できるでしょうか?
今のところサーバーサイドのPHPでCurlを利用する(http://php.net/manual/ja/curl.examples-basic.php)しか、私には選択肢が無いのですが、
出来ればクライアントサイドで実現させたいです。

237 :Name_Not_Found:2011/06/04(土) 02:57:44.96 ID:???
不可能

238 :Name_Not_Found:2011/06/04(土) 03:13:33.34 ID:???
firefox拡張

239 :Name_Not_Found:2011/06/04(土) 03:20:35.06 ID:???
画像とかも出来ないのかな?
○○.jpgとかってURLだったら何か方法ありそうな気がするけど

240 :Name_Not_Found:2011/06/04(土) 03:26:15.14 ID:???
何でJSONPなんてしょうもない方法ができたか考えろ

241 :Name_Not_Found:2011/06/04(土) 08:39:39.67 ID:???
>>231
デッチあげてみた。目覚ましの30秒前にループ開始して1秒ごとにチェックする、つもり。
実際その通りに動くかは知らん。

function mestart() {
supervisor = prompt("時間を入力してください(半角英数字24時間表記)");
supervisor2 = prompt("分を入力してください");
var t = new Date();
var nsec = t.getTime();
t.setHours(supervisor); t.setMinutes(supervisor2); t.setSeconds(0); t.setMilliseconds(0);
var tsec = time.getTime();
if (tsec < nsec) { t.setTime(tsec + 24 * 60 * 60 * 1000); tsec = time.getTime(); }
var mezamasi = make_mezamasi(tsec); var n = tsec - nsec - 30 * 1000;
setTimeout(mezamasi, (n < 0) ? 0 : n);
}

function make_mezamasi(tsec) {
return function() {
var timeid;
var loop_mezamasi = function() {
var t = new Date();
if (t.getTime() < tsec){ return; }
clearInterval(timeid); sound2Play();
};
timeid = setInterval(loop_mezamasi, 1000);
}
}

242 :Name_Not_Found:2011/06/04(土) 10:00:36.22 ID:???
jqueryを含むjavascriptのライブラリから外部サイトのRSSを取得するのってできないのですか?

243 :Name_Not_Found:2011/06/04(土) 11:10:13.54 ID:???
できるけどクロスドメイン通信について調べたら幸せになれるかも

244 :Name_Not_Found:2011/06/04(土) 11:56:35.53 ID:???
jsonpを使わないでRSSを取得できるんですか?

245 :Name_Not_Found:2011/06/04(土) 11:57:33.63 ID:???
クロスドメイン通信がjsonpのことだろ

246 :Name_Not_Found:2011/06/04(土) 12:14:05.27 ID:???
外部のRSSを取得する事はできないってことですね?

247 :Name_Not_Found:2011/06/04(土) 12:16:20.46 ID:???
そのRSSの配信形態によるんじゃない

248 :Name_Not_Found:2011/06/04(土) 12:18:48.39 ID:???
・まずPerlとかPHPとかのサーバサイドスクリプトの使用できるサーバを用意します
・次にRSSを取得してJSONP形式で返すサーバサイドスクリプトを作成します
・最後にJavaScriptからそのサーバサイドスクリプトにアクセスして取得します

これが現実的

249 :Name_Not_Found:2011/06/04(土) 12:40:18.16 ID:???
サーバーサイドを使わずjavascriptだけでは取れないってことでいいんですね?

250 :Name_Not_Found:2011/06/04(土) 12:48:19.18 ID:???
いいですよ
RSSの定義を誇大解釈すればJSONPにまで及ぶので
(ニュースやブログなど各種のウェブサイトの更新情報を簡単にまとめ、配信するための幾つかの文書フォーマットの総称)
JSONP形式で初めから配布してるところならJavaScriptだけで取れると言ってもいいと思うけど
一般的なtext/xmlのRSSでは無理ですね

251 :Name_Not_Found:2011/06/04(土) 12:51:03.55 ID:???
無理ですよねありがとうございました

252 :Name_Not_Found:2011/06/04(土) 13:03:11.13 ID:???
自分だけでやりたきゃオプションでチェック外せよ
そういうサービスやりたきゃ、そもそもJSなきゃ動かないアホシステムにすんな

253 :Name_Not_Found:2011/06/04(土) 13:53:04.63 ID:???
誰にレスしてんだ

254 :236:2011/06/04(土) 14:07:34.60 ID:???
外部サイトがJSONP等を利用していない限りは不可能なんですね。
クロスドメイン通信という単語を知ることが出来たので勉強になりました!
ありがとうございました。

255 :think49 ◆bKk/qcAKuM :2011/06/04(土) 14:36:19.88 ID:???
>>236
正確には相手先のサーバがクロスドメイン通信を許可する設定にしてあって、ユーザがクロスドメイン通信に対応しているブラウザを利用しているなら可能です。
公開型のWebサービスにはそういう形態で公開しているところもあります。
http://www.w3.org/TR/XMLHttpRequest2/
http://msdn.microsoft.com/ja-jp/library/dd573303%28VS.85%29.aspx

256 :236:2011/06/04(土) 14:58:32.13 ID:???
>>255
なるほど、とてもわかりやすいソースでした!
ありがとうございます!

今回は公開型のWebサービスではないため、
ユーザーがテキストボックスに内容をコピーする形にして、テキスト解析を行う形にします。

257 :Name_Not_Found:2011/06/04(土) 15:27:20.53 ID:???
RSSならGoogleのAjaxなんたらAPI使えばJSONPでとれないっけ

258 :Perl忍者 ◆M5ZWRnXOj6 :2011/06/04(土) 16:48:01.25 ID:jgj52i6S
おまえらまだこんなことやってんだね
かわいそう、グズっていうか終わってるね

Javascript(笑)ださいね
まじださいよ  まじで
終わってる

早く死ねばいいんじゃないんですかね???
Javascriptでベンチャーとかまじそういうやつ沸いてそうだね
ごみみたいなハテナにつづってるやつ
ああああ、いっちゃった 本当のことをいっちゃったよ君たち
まだAJAXとかJAVASCRIPTってわめいてんだね

259 :Name_Not_Found:2011/06/04(土) 17:02:37.58 ID:???
(´;ω;`)

260 :Name_Not_Found:2011/06/04(土) 17:08:27.27 ID:???
面白い人だなー
JavascriptとかAJAXとかJAVASCRIPTとか
どれだけ突っ込みどころを作れば気がすむんだろう

261 :Name_Not_Found:2011/06/04(土) 17:10:37.06 ID:???
変換くらいしっかりやれよ

262 :Name_Not_Found:2011/06/04(土) 17:18:09.96 ID:???
>>258
今時Perlとか化石乙wwwww

263 :Name_Not_Found:2011/06/04(土) 17:31:06.67 ID:???
5.003ぐらいから手をつけて、5.8になる頃には使わなくなったなー。

嫌いじゃないが、使う理由がないっていうw
独占市場抱えてる言語とは立場が違いすぎ。

264 :Name_Not_Found:2011/06/04(土) 17:42:57.20 ID:???
忍者に反応するやつは忍者以上にあわれだわ

265 :Name_Not_Found:2011/06/04(土) 17:50:36.80 ID:???
自演じゃないんですか?

266 :Name_Not_Found:2011/06/04(土) 18:11:51.47 ID:???
>>264
忍者さんちーっすwwww

267 :Name_Not_Found:2011/06/04(土) 18:14:54.92 ID:???
index.htmlの中身↓
<frameset〜>
<frame src="a.html"〜>
<frame src="b.html"〜>
</frameset>
http://www.iana.org/domains/example/index.htmlを開いたとき、
つづき

268 :Name_Not_Found:2011/06/04(土) 18:17:26.23 ID:???
つづき

b.htmlの中の<div id="test">〜</div>のid属性の属性値(ここでは仮にtest)を取得したいのですが
属性値を取得する仕組みは出来ているのですが、肝心のフレームにアクセスする方法が分かりません
どなたかご教示お願いします

269 :Name_Not_Found:2011/06/04(土) 19:01:52.55 ID:???
米Yahooにxml→json変換サービスがあったような

270 :Name_Not_Found:2011/06/04(土) 19:03:51.23 ID:???
至急そのサービス名を教えてください

271 :Name_Not_Found:2011/06/04(土) 19:22:31.50 ID:???
>>267-268
HTMLFrameElement.contentDocument

272 :Name_Not_Found:2011/06/04(土) 21:27:28.38 ID:???
>>270
Yahoo!Pipes
pipes.yahoo.com

273 :Name_Not_Found:2011/06/04(土) 22:11:46.24 ID:???
idがtableのテーブルに新しい列を追加するときですが、

var table = document.getElementById('table');
var col = document.createElement('tr');
var value1 = document.createElement('td');
var value2 = document.createElement('td');
var value3 = document.createElement('td');
var value4 = document.createElement('td');
var value5 = document.createElement('td');
value1.innerHTML = 'a';
value2.innerHTML = 'b';
value3.innerHTML = 'c';
value4.innerHTML = 'd';
value5.innerHTML = 'e';
col.appendChild(value1);
col.appendChild(value2);
col.appendChild(value3);
col.appendChild(value4);
col.appendChild(value5);
table.appendChild(col);

こんなひどそうな感じになったのですが、これでいいんでしょうか?

274 :Name_Not_Found:2011/06/04(土) 22:13:41.61 ID:???
せめてループで回すとかcloneNode使うとかしろよ


275 :Name_Not_Found:2011/06/04(土) 22:17:06.72 ID:???
>>273
<tbody> も作って配列をループさせる

276 :Name_Not_Found:2011/06/04(土) 22:25:06.37 ID:???
>>273
お前にinsertRowとinsertCellを与えよう
大事に使うのじゃぞ

277 :273:2011/06/04(土) 22:26:00.84 ID:???
レスどうもありがとうございます。
ちょっと知らないことが出てきて困っているので、
また色々試して後できます。

278 :273:2011/06/04(土) 22:38:33.41 ID:???
var table = document.getElementById('table');
var raw = table.insertRow(-1);
raw.insertCell(-1).value = 'a';
raw.insertCell(-1).value = 'b';
raw.insertCell(-1).value = 'c';
raw.insertCell(-1).value = 'd';
raw.insertCell(-1).value = 'e';

こんな感じになりました。
だいぶスッキリした気がします。
どうもありがとうgざいました。

279 :Name_Not_Found:2011/06/04(土) 22:46:13.90 ID:???
>>278
6回リフローが発生するからcloneNode方式がいい気がする

280 :273:2011/06/04(土) 23:11:18.53 ID:???
cloneNodeがよくわからなかったのでこんな感じになってしまいました。

var table = document.getElementById('table');
var raw;
if (!table.childNodes.length) {
raw = table.insertRow(-1);
raw.insertCell(-1).value = 'a';
raw.insertCell(-1).value = 'b';
raw.insertCell(-1).value = 'c';
raw.insertCell(-1).value = 'd';
raw.insertCell(-1).value = 'e';
} else {
raw = table.appendChild(table.childNodes[0].cloneNode(true));
raw.childNodes[0].childNodes[0].innerHTML = 'a';
raw.childNodes[0].childNodes[1].innerHTML = 'b';
raw.childNodes[0].childNodes[2].innerHTML = 'c';
raw.childNodes[0].childNodes[3].innerHTML = 'd';
raw.childNodes[0].childNodes[4].innerHTML = 'e';
}

馬鹿な子でごめんなさい(´・ω・`)

281 :Perl忍者:2011/06/05(日) 00:21:40.00 ID:???
おまえらさああ おもしろいもん作ってみてよ
つくれないんでしょ

ほら
どうせ劣化のもの 依存のアプリのぱくり
つまんない やめれば?
サイトとかつくってよろこんでるカスばっかりだし死ねば良い世マジでだわ
なんかアマチンコロがjavascriptでテトリス!!とかよろこんでハテナに書いてたけどかすすぎてまじなえた
javascriptでつくれるものが激しくつまらないからゲームいかだからね
オンラインゲームつくってるやつらのほうが数1000億倍凄いと思う
お前らまじぜんぜん凄くない ただのサイト飾る程度きえろ 
お前ら
らない

282 :Perl忍者:2011/06/05(日) 00:22:40.06 ID:???
いやだよもうLLのやつとかJavascriptのやつら死んでくれないかな?
消えてください

はずかしい

283 :Name_Not_Found:2011/06/05(日) 00:33:54.12 ID:???
トリップのない忍者は偽者

284 :Perl忍者:2011/06/05(日) 00:35:27.04 ID:???
ほらつくれない

どうせ、サイトでチカチカ点滅させたり
Ajaxとかいってるそういうやつらばっかり
クロスドメインとかそんなのばっかり
消えろJSONとか
まじくだらない
くだらない
本当にくだらないしつまらないし おもしろくもないし 寒い
消えろやめちまえ

285 :Name_Not_Found:2011/06/05(日) 00:36:30.32 ID:???
いいこと言うじゃないか

286 :Name_Not_Found:2011/06/05(日) 00:39:52.85 ID:???
義理も義務もないのに何故見ず知らずに人に作ってあげなきゃいかんのだ
おまえは「おもしろいもん作ってみてよ」といわれたら無条件で作るのか?

287 :Perl忍者:2011/06/05(日) 00:44:17.44 ID:???
こいつらさあ
いつまで JSONとかエンコードとかファイル形式とかやってんの
そろそろ統一すればいいじゃん

本当にそれの繰り返し 規約とかの
ずっとそういうのやってるだけ
まじつまらない 飽きる どうせつくれねーだろばーか
アホくさコイツ286死ね

どうせつくれねーだろクソハゲ消えろ
まじつまんえー どうせチャットとかWEBサービスとかSNSだろてめえがつくれんの
見飽きたんだよボケカス

288 :Perl忍者:2011/06/05(日) 00:47:35.87 ID:???
こいつらどいつもこいつも
ハテナに技術ネタかきつづつってるだけのかすやろうばっかりwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww

289 :Perl忍者:2011/06/05(日) 00:47:57.68 ID:???
マジプログラミングおわおん消えろ

290 :Name_Not_Found:2011/06/05(日) 00:49:08.47 ID:???
うむ、続けろ

291 :Name_Not_Found:2011/06/05(日) 00:51:52.55 ID:???
Perl忍者さん、どうか参考になるものを作ってください
期待してます!

292 :Perl忍者:2011/06/05(日) 00:53:21.46 ID:???
なんかこいつらさああ

作らないやつが言うな ってほざいてるみたいだよね

その程度の認識だよね  まじれべるひくいね

293 :Perl忍者:2011/06/05(日) 00:53:44.50 ID:???
一番えらいのは使う側のユーザーだから

勝手につくってみせてきたバカがわるいんだから
文句いっていいの当然

294 :Name_Not_Found:2011/06/05(日) 00:55:33.16 ID:???
使ってやるからおまえが作れ

295 :Name_Not_Found:2011/06/05(日) 00:57:54.84 ID:???
実にウェブ向きの意見で感動しました

296 :Name_Not_Found:2011/06/05(日) 00:59:21.45 ID:???
>>293
> 勝手につくってみせてきたバカがわるいんだから
今はおまえが「作って見せろ」と>>281で誘導してるんだろうが

297 :Perl忍者:2011/06/05(日) 01:01:01.12 ID:???
なんかよくわからない

もういいよやめよう

298 :Name_Not_Found:2011/06/05(日) 01:01:46.87 ID:???
助言いただきたく、書き込みました。無知な私にご教授いただけたら
ありがたいです。以下の関数で読み込んでいる画像を先読みしたいの
ですがうまくいかず・・・よろしくおねがいします。
function sh(){
x=Math.floor(Math.random()*10)
y=Math.floor(Math.random()*10)
z=Math.floor(Math.random()*10)
a=Math.floor(Math.random()*10)
b=Math.floor(Math.random()*10)
c=Math.floor(Math.random()*10)
d=Math.floor(Math.random()*10)

document.aso.src= + x + ".jpg"
document.hso.src= "cn.jpg"
document.bso.src= + y + ".jpg"
document.cso.src= + z + ".jpg"
document.dso.src= + a + ".jpg"
document.eso.src= + b + ".jpg"
document.fso.src= + c + ".jpg"
document.gso.src= + d + ".jpg"

tID=setTimeout("sh()",30);
}

299 :Name_Not_Found:2011/06/05(日) 01:01:49.57 ID:???
後で別人と言い張るためにトリップをつけてないんだろうな
同一人物なのは丸わかりなわけだが

300 :Perl忍者:2011/06/05(日) 01:04:01.74 ID:???
さよなら

301 :Name_Not_Found:2011/06/05(日) 01:10:48.83 ID:???
new Image().src = 読ませるURL

302 :Perl忍者:2011/06/05(日) 01:11:12.45 ID:???
消えて良いかな?

303 :Perl忍者:2011/06/05(日) 01:11:39.14 ID:???
消えますよおおお?

304 :Perl忍者:2011/06/05(日) 01:13:09.39 ID:???
さようなら

305 :Name_Not_Found:2011/06/05(日) 01:20:56.75 ID:???
>>304
ばいばい

>>301
こんな感じでしょうか??
img=new Array();
img[]=new Image();
img0.src=0.jpg
||略
img11.src=ch.jpg

x=Math.floor(Math.random()*10)
document.hogehoge.src ="img" +x+".src"

306 :Name_Not_Found:2011/06/05(日) 01:26:47.83 ID:???
>>305

function sh(images){
    for(var i = 0; i < images.length; i++) {
        new Images().src = images[i];
    }
}
//
img = ["./bunsen11-hp.png", "./evliyacelebi11-hp.jpg", "./houdini11-hp.jpg", "./persiannewyear11-hp.jpg"];
sh(img);


307 :Name_Not_Found:2011/06/05(日) 01:34:12.13 ID:???
>>297
その程度か

308 :Name_Not_Found:2011/06/05(日) 01:47:37.81 ID:???
ちょっと試してみてもエラーが出るので聞きたいのですが
javascriptで<dl id=xxx>〜</dl>をidで取得した場合
その中にある<a>リンク、<dt>、文章とかも取得されるんでしょうか?

309 :273:2011/06/05(日) 01:47:56.83 ID:???
他の質問よろしくお願いします。

<p>
<span id="test">aaaa</span>
</p>

ここでidがtestのところを全部削除したいのですが、
要素を削除する適当な関数とかがremoveChild以外に見つかりません。

var test = document.getElementById('test');
test.parentNode.removeChild(test);

こういう感じに一度親までもどって子供を消すという手順でよろしいでしょうか?
なんか無駄が多い気がしますが。

310 :Name_Not_Found:2011/06/05(日) 02:05:31.61 ID:???
if (evt.which==3) return false
で右クリックのコンテキストメニューを出さないようにしたいのですがOperaだとどうもうまくいきません
目的はワンクリックで進めていくゲームで特定の領域だけ右クリックを禁止状態にしたいです
あと「このページによる追加のダイアログ表示を抑止する」みたいなやつも出したくないのですが
(勢い余ってチェックいれてしまうとリロード=リセットしないときかなくなってしまうので)
なんかこのへんの情報ありませんでしょうか?

311 :Name_Not_Found:2011/06/05(日) 06:13:34.07 ID:???
<form action="http://" method="GET">
<input type='hidden' name='aaa' value=''値">
<input type="text" name="q"> 
<input type="submit" value=" 検索 " onclick="Search();" />
</form>

このようなフォームでSearch()内でaaa を除外するにはどうしたらいいでしょうか


312 :Name_Not_Found:2011/06/05(日) 06:59:02.04 ID:???
function Search() {
 xxx.submit();
}

やはりsubmitで削除は無理でしょうか



313 :Name_Not_Found:2011/06/05(日) 07:39:02.59 ID:???
273氏

いいことを教えてやろう。

「プログラムが動いてるならそれ以上いじるな」

目的の動作をしているならそれでいい。何も不満などないだろう?
より良い方法を追求するのはいいことだが、それは動作を理解した上で、
リファレンスを眺めて「あ、こんなメソッドあったんだ」と気付くように
なってからの話。
そしてもちろん、リファレンスを眺めるなんて作業は、ここで質問する理由がない。

314 :Name_Not_Found:2011/06/05(日) 09:55:41.34 ID:???
>>311
disabled

315 :Name_Not_Found:2011/06/05(日) 15:44:11.14 ID:???
var a = [[1,2,3,4,,,,,9,,],[1,2,3,4,5,6,7,8,9,0,]];

この配列を文字通り文字列に変えるにはどうしたらいいでしょうか?
toStringではなく、[]も全て文字列にしたいのですが(evalで使えるような形)、
そういう手頃な関数とかありますでしょうか?

316 :Name_Not_Found:2011/06/05(日) 15:54:37.68 ID:???
hoge.toSourceとかuneval(hoge)とか

317 :Name_Not_Found:2011/06/05(日) 15:56:13.49 ID:???
javascript: Array.prototype.toString = function() {return "["+this.join(",")+"]";}; alert([[1,2,3,4,,,,,9,,],[1,2,3,4,5,6,7,8,9,0,]]);

よしよし、動いた動いた

318 :315:2011/06/05(日) 16:19:32.30 ID:???
>>316-317
どうもありがとうございます。
助かりましたー

319 :Name_Not_Found:2011/06/05(日) 16:21:39.41 ID:???
>>315
JSON.stringify([[1,2,3,4,,,,,9,,],[1,2,3,4,5,6,7,8,9,0,]])

320 :Name_Not_Found:2011/06/05(日) 16:33:42.08 ID:???
IE8だとtoSourceもunevalもJSONオブジェクトもナイ
>>317がよさそう

321 :Name_Not_Found:2011/06/05(日) 16:35:59.96 ID:???
>>317
わざわざprototypeに突っ込む理由ないだろw
せめて myArrayToString() とかなんとか適当な関数名にしてやれよ。

>>315
警告しとくが、そんな発想でプログラムしてると「文字列化しておいたデータを
evalで戻すとかキチ○イに刃物」と罵られることになるぞ。

データを丸ごと文字列化しておきたい・文字列化したものをデータに戻したいってのは
誰でも考える(必要になる)ことだから、ちゃんとライブラリもある。
「JSON使え」がまともな回答。

322 :315:2011/06/05(日) 16:45:03.55 ID:???
>>319
ありがとうございます。こっちはnullも入れてくれるんですね。

>>320
たしかにおっしゃるとおりでした。エラーでました。

>>321
どんな発想かわかりませんが、
機密情報を含むセーブデータで実際はさらに圧縮したものをcookieに入れることになります。
サーバにも保存してキャッシュになかったらapplication/jsonで取得するようにしますが。

323 :Name_Not_Found:2011/06/05(日) 18:34:29.94 ID:???
このスレ的にはもう少しまともに教えてやるべきなんだろうが、
生温かく放置して大惨事になるところを観察したい俺がいるw

324 :Name_Not_Found:2011/06/05(日) 18:54:12.59 ID:???
機密情報をcookieに入れるなwwww

325 :Name_Not_Found:2011/06/05(日) 19:15:21.72 ID:???
>>322
機密情報なら尚更安全にパースする必要がある
>>317は "hoge,foo" などが来た場合に適切にパース出来ない

326 :Name_Not_Found:2011/06/05(日) 19:27:08.23 ID:???
>>314
遅くなりました
ありがとうございます


327 :Name_Not_Found:2011/06/05(日) 19:32:40.89 ID:???
>>324
cookieは安全なんですが

328 :Name_Not_Found:2011/06/05(日) 20:04:38.10 ID:???
>>310
preventDefaultじゃないの?
どちらにしろブラウザのオプションで簡単にブロックできるから設計を見直したほうが

>>320
JSONはあるよ

329 :Name_Not_Found:2011/06/05(日) 20:29:58.71 ID:???
>>327
cookieに書き出すのはいいとして、ブラウザが「これcookieです」といって
渡してきたデータを無条件に「これ安全だよね」と信用できるなら
お前はその辺の新興宗教に洗脳される素養があるよ。

330 :Name_Not_Found:2011/06/05(日) 20:35:51.96 ID:???
なんかずいぶん煽り気質のやつがいるね
キチガイだの新興宗教に洗脳されるだの
なんかリアルで嫌なことでもあったのか?

331 :Name_Not_Found:2011/06/05(日) 20:37:17.94 ID:???
セッション管理でクッキー使った方が安全ならわかるが
普通にXSSでクッキー漏洩があるのに「安全」って何だろ

332 :Name_Not_Found:2011/06/05(日) 20:41:00.33 ID:???
windowオブジェクトの拡張ってどうやるんですか?
StringとかArrayの拡張はよく見るんですが、
window.prototype.hogeとかWindow.prototype.hogeとかやってみたけどIEでエラーが出ます。

333 :Name_Not_Found:2011/06/05(日) 20:58:15.48 ID:???
>>327
イントラなら安全かもね

334 :Name_Not_Found:2011/06/05(日) 20:59:03.24 ID:???
いまどき専用鯖も持ってない雑魚はよくないですね。

335 :Name_Not_Found:2011/06/05(日) 20:59:39.09 ID:???
俺はnew window();なんてコードは見たことないなぁ。
Elementのことか?

336 :Name_Not_Found:2011/06/05(日) 21:03:00.12 ID:???
window.__proto__.hoge = 1;
alert(hoge);

__proto__ は持ってるみたいだね。

337 :Name_Not_Found:2011/06/05(日) 21:05:35.34 ID:???
>>332
IE なら window.constructor でとれるけど、セキュリティ上の理由でprototype拡張は無理

338 :332:2011/06/05(日) 21:08:38.71 ID:???
>>335-337
IEで実装されてないいくつかの実装を拡張すればいいのにと思ってましたが、
セキュリティ↑の理由で無理なんですね。
どうもありがとうございました。

339 :Name_Not_Found:2011/06/05(日) 21:20:53.36 ID:???
>>330
このスレに、evalでデータ戻すだのcookieに機密データだのという奴が来るのは仕方がない。

イヤなことがあるとすれば、それらに対してまともな回答のできない奴が
回答者気取りで刃物を渡してしまうことだな。

340 :Name_Not_Found:2011/06/05(日) 21:23:14.58 ID:???
>>338
他ブラウザにあってIEにないwindowの機能、たとえばbtoaとかは

if (!window.btoa){ window.btoa = function(){/*実装*/}; }

とかで自分で用意できる。prototypeに入れようとする必要はない。

341 :Name_Not_Found:2011/06/05(日) 21:33:11.04 ID:???
それだとフレームに対応できない、てことじゃねの

342 :Name_Not_Found:2011/06/05(日) 21:44:29.43 ID:???
windowはグローバルとビューを兼ねてるからわかりづらい
locationやdocumentやイベントリスナーはビューごとに必要だけど
setTimeoutやbtoaはグローバルでいい
こんなちぐはぐな仕様、何とかならなかったのかねえ

343 :Name_Not_Found:2011/06/05(日) 22:34:30.03 ID:???
>>332>>337
Window.prototype.hoge じゃないの?

344 :think49 ◆bKk/qcAKuM :2011/06/05(日) 22:53:13.11 ID:???
>>343
その手法が通るのは Firefox4 だけでは?

Window.prototype.hoge = 'hoge';
alert(hoge); // Fx4 は "hoge"

"Window" の名前が通るのも Fx だけかと。

345 :Name_Not_Found:2011/06/05(日) 22:54:24.72 ID:???
>>342
globalにglobalStorageを置き
global.frames[0]、global.frames[1]がビュー集合
global.windowとglobal.documentが現在ビューと現在ドキュメント
こんな感じで良かったんじゃないかなあ
後方互換性を考えたとしてもglobal==windowである必要はなかったのに

W3C草案にタブがアクティブか調べるdocument.hiddenなんて出てたな
windowではなくdocumentに付けてるのが笑いどころ
あいつらもビューをどう扱ったらいいか分かんなくなってるっぽい

346 :Name_Not_Found:2011/06/05(日) 23:16:53.06 ID:???
window.hiddenなんてもうけたら
今グローバルでvar hiddenしてるコードは全滅
だからdocumentにつけとく

そのていどの理由じゃね
と考えつつ、ビューでビュー制御できないってのもアホくせと思った

347 :Name_Not_Found:2011/06/05(日) 23:17:08.39 ID:???
>>344
IE9のIE7モードだと駄目で、IE8モードだと動いたけど、実際のIE8じゃ駄目なんかな
あとFirefox3.6でも動いた

348 :Name_Not_Found:2011/06/05(日) 23:19:48.85 ID:???
あーすると今度は<div id="hidden">がdocument.hiddenとぶつかるのか
しったこっちゃないけど

349 :think49 ◆bKk/qcAKuM :2011/06/05(日) 23:41:05.61 ID:???
>>347
あー、ごめんなさい。IE8 の検証時には数値代入してましたが、String型の値を代入したら IE8 でもいけました。

window.constructor.prototype.hoge = 'hoge';
hoge; // "hoge"

ただ、セキュリティ上の理由があったのは Constellation さんから聞いた話なので確かだと思います。
過去試したときにはフレームを跨いで「グローバル変数」を実体化させる挙動を狙っていて(>342で取り上げられたように全てのフレームで btoa を使えるようにする、みたいな)それがセキュリティ上の理由で出来ないって話だったかと。
つまり、window.constructor.prototype.hoge を定義することによってフレームを跨いで window.hoge を定義する動作は出来なかったと思います。

>>348
衝突する場合は既存のプロパティが優先される仕様なんじゃないですかね。
過去、以下のようなケースの質問者さんに出会ったことがあります。

/* グローバルコード */
var name = [1, 2, 3]; // String型にキャストされるんだけど何故?→答え、window.name を初期化してるから


350 :Name_Not_Found:2011/06/06(月) 00:14:14.05 ID:???
衝突なら
<form action="..."><input name="action">...
form.actionでaction属性がとれないと泣いてたのもいたな
form.getAttributeNode('action').valueで何とかなるが

オブジェクトのプロパティとしてノード名をまき散らすの、あれ害悪でしかねー
既存プログラムの救済だかなんだか知らないが、何でHTML5に入れちゃったんだ
ホント馬鹿じゃね

351 :Name_Not_Found:2011/06/06(月) 00:19:06.22 ID:???
ちなみに当時IEだったから
form.getAttribute('action')もinputの方を返すというトンデモ事態だった

352 :think49 ◆bKk/qcAKuM :2011/06/06(月) 00:49:37.78 ID:???
>>350-351
それぐらいなら form.elements['action'] でいけます。form.action なんて Shorthand に頼る理由もないですし…。

> 6.2.4 Named access on the Window object
> http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#named-access-on-the-window-object
これを取り入れた理由はよくわからないですが、HTML5 は相互運用性を重視しているっぽいので既存の(特にIEの)仕様をどんどん取り入れていく方向のようです。
event.returnValue とか event.srcElement とかどんどん取り入れられて今では GC でも使えますしね。
document.all を取り込んだ理由は今でも釈然としませんが、まあ仕方ない。
ちなみに、id="hoge-foo" のように id に "-" を付与すれば ECMAScript の制約(変数名にハイフンは許可されない)でグローバル変数にならない、という裏技があったり。
id属性に限ってはハイフン区切りの命名規則がちょっぴり好きになった理由です。

353 :Name_Not_Found:2011/06/06(月) 00:53:52.26 ID:???
>>350
HTML5でやってることって、半分が既存の文法の追認だから。

HTML4では文法的に好ましくないとされていた事ですら追認しちゃってるし

354 :think49 ◆bKk/qcAKuM :2011/06/06(月) 00:55:37.37 ID:???
フレームを跨ぐ件はこれでした。http://think49.scrapi.jp/scraps/216

ハイフン区切りの命名規則ですが、CSS3 の属性セレクタとも相性がいいのでお勧めです。
JavaScripter 的には querySelector() と組み合わせると面白いんじゃないでしょうか。
http://zng.info/specs/css3-selectors.html#attribute-selectors

355 :Name_Not_Found:2011/06/06(月) 01:00:48.21 ID:???
>>241

返信遅くなってしまい申し訳ありません。

いただいたソースコードで無事動作いたしました!ありがとうございます。

自分の知識と理解力が足りないためいまいちどのように動いているのかわか
らないのでよければ解説いただけたら幸いです。あつかましいお願いで申し
訳ありません。

特に複数の設定時間が指定できるあたりが・・・

356 :Name_Not_Found:2011/06/06(月) 05:40:28.01 ID:???
>>352
とりたかったのはaction「属性」な
form.actionで「action属性」をとりたいのに
form.elements['action']へのショートカットで潰される仕様の
どこが相互運用性だよ

普通そういうのを相互運用性とは言わない、後方互換性
しかもたちの悪い種類の「互換」だ

357 :think49 ◆bKk/qcAKuM :2011/06/06(月) 07:46:05.02 ID:???
>>356
ごめんなさい、読み間違えていました。
GC11, Fx4, Op11, IE8 で再現されることを確認しました。(form.attributes["action"] で対応できそうです)
http://jsfiddle.net/WMxRR/1/
この仕様は確かに変ですね。WHATWG にバグ報告していいレベルかも…。

358 :Name_Not_Found:2011/06/06(月) 11:01:46.75 ID:???
初歩的な質問で申し訳ないのですが、以下のようにUL要素にstyleを指定しているのですが、LI要素がリスト表示されません。
どういったことが考えられるでしょうか。。

<li><a href="#" onclick="OpenClose('sub2');return false;">注意事項</a>
<ul id="sub2" style="display: none; list-style-type: decimal;">

359 :Name_Not_Found:2011/06/06(月) 11:04:31.50 ID:???
>>358
ソースが半端になってすみません。<ul 〜以下は以下のようになっていてリスト表示したい部分です。
<li>hoge1</li>
<li>hoge2</li>

360 :Name_Not_Found:2011/06/06(月) 12:31:19.39 ID:???
display: none;

361 :Name_Not_Found:2011/06/06(月) 12:36:31.65 ID:???
>>360
オンクリックで表示される文章をリスト表示にしたいと思ったのですが・・・。
テキストで「1.hoge1」と入力するしかないですかね(´・ェ・`)

362 :Name_Not_Found:2011/06/06(月) 14:43:38.30 ID:ZVspiHxv
>>361
問題ない気がするが。
ちょっとコード上げてみてよ

363 :Name_Not_Found:2011/06/06(月) 14:51:52.83 ID:???
>>361

1.hoge1
2.hoge2

↑のように表示したいんだよね?
今の状態ではどう表示されるの?

364 :Name_Not_Found:2011/06/06(月) 15:59:45.91 ID:???
>>357
attributes["action"]という書き方は「ない」

365 :Name_Not_Found:2011/06/06(月) 16:03:29.04 ID:???
>>363
今はクリックイベントで表示されると、
hoge1
hoge2

でリストの数字だけが付加されていない状態です。

366 :Name_Not_Found:2011/06/06(月) 16:30:07.10 ID:???
>>352
HTML5はとっくにナンバリングがなくなってHTML Standardになってる
今後は定期的にバージョンアップするのでなく、継続的にアップデートされる
勧告を待っている奴にはご愁傷様だが、勧告に中間発表以上の意味はない

裏を返せば、訂正・修正は後でいくらでもやってくれということ
後で廃止するにせよ何にせよ、それを整理・検討したという記録は必要だ
RFC 4329のように、正式に廃止のステータスを与えるためだけに定義された
"text/javascript"の前例もある

当たり前のことなんだが
「HTML5に記載された」イコール「安心して使える」とはならない
使ったときにどうなるかが明記されたにすぎない

367 :Name_Not_Found:2011/06/06(月) 16:36:06.56 ID:???
>>365
おおかたIEでも使ってるかmargin/paddingが狂ってんだろ
CSSバグ辞典をながめてから出直せ

368 :Name_Not_Found:2011/06/06(月) 18:33:07.51 ID:???
>>365
その言い方だと、onclick と display: none; なしで普通に表示した場合は数字つくってこと?
ってことは、onclickで動作するJavaScriptの部分でstyleが変更されてるわけ?
ならJavaScript部分のコードも貼ってください

369 :Name_Not_Found:2011/06/06(月) 19:31:25.32 ID:ZVspiHxv
>>365
ulじゃなくてolでした、ってオチじゃないだろうな

370 :Name_Not_Found:2011/06/06(月) 19:34:19.34 ID:???
>>364
なぜないといえる?

371 :Name_Not_Found:2011/06/06(月) 19:39:16.29 ID:???
>>370
逆だろ
なぜそう書けると言える?

372 :Name_Not_Found:2011/06/06(月) 20:38:16.80 ID:???
>>371
https://developer.mozilla.org/ja/DOM/element.attributes
あるけど

373 :Name_Not_Found:2011/06/06(月) 20:44:18.33 ID:???
https://developer.mozilla.org/ja/XMLHttpRequest#.e9.9d.9e.e5.90.8c.e6.9c.9f.e3.81.ae.e4.bd.bf.e7.94.a8.e6.b3.95

ここのonreadystatechangeのところのaEvtっていうのはなんですか?

374 :Name_Not_Found:2011/06/06(月) 20:49:51.53 ID:???
>>372
理解した、これ以上不毛なやりとりをするつもりはないので

attributes.item(i)をattributes[i]と省略できることはDOM参考規定にあるが
attributes.getNamedItem(name)をattributes[name]と省略できるとは書かれていいない
これはgetNamedItemNS()の存在から分かるように、名前空間の存在による

Web IDLではNamedNodeMapはなくなり、attributesはAttrの配列として定義される
当然、attributes[name]というアクセス方法もない(現時点では)

IEの独自拡張を他のブラウザが追随したもので、HTML5にすら未だ明記されていない
getElementsByTagName(name)が変わったように、後で変わる可能性がある

375 :Name_Not_Found:2011/06/06(月) 23:09:46.15 ID:ZVdAQ6Nt
<button onclick="test(arguments)">
こういう要素をフレームに読みこませたときに
IEだとargumentsが空になるのはどういう仕様なんですか?

376 :Name_Not_Found:2011/06/06(月) 23:30:53.35 ID:4Pr3Jagq
なんかクロージャでどんなプログラムを作れるんですか?
適当なサンプルプログラムを教えてください(ゲームなど)

377 :Name_Not_Found:2011/06/06(月) 23:34:22.81 ID:???
クロージャは使うべきではありません。

378 :Name_Not_Found:2011/06/06(月) 23:42:54.69 ID:???
var count = (function () {
var c = 1;
return function () {
return c++;
}
})();
count(); // 1
count(); // 2
count(); // 3

クロージャはこんなのだけど、クロージャ使わずにも同じものかけるから、すごいものではない。

379 :Name_Not_Found:2011/06/06(月) 23:58:15.93 ID:???
>>373わかりませんかー

380 :Name_Not_Found:2011/06/07(火) 00:38:33.63 ID:???
an Event、そのままの意味だろ

381 :Name_Not_Found:2011/06/07(火) 00:49:41.33 ID:???
>>380
それは何に使うんですか?
aEvtはこの引数に書いてるだけで
その後呼び出されてないようですがこれ必要なんですか?

382 :Name_Not_Found:2011/06/07(火) 01:09:26.92 ID:???
どうでもいいけど
aEvtのaはargumentだと思う
https://developer.mozilla.org/ja/Mozilla_Coding_Style_Guide#.e6.8e.a5.e9.a0.ad.e8.be.9e

383 :Name_Not_Found:2011/06/07(火) 01:32:49.43 ID:???
>>381
イベントリスナーの書き方を覚えろ
あとmdcの日本語版はあまり参考にならん

384 :Name_Not_Found:2011/06/07(火) 02:00:48.29 ID:???
>>383
なるほど
これはイベントリスナーなんですね
ということは

req.addEventListener('readystatechange', aEvt, false);

これと同義で
aEvtはここには書いてないけど
この下か上に書かれているといったところなんでしょうか?

385 :Name_Not_Found:2011/06/07(火) 02:07:26.08 ID:iBr2GC1R
>>384
ちげえ

addEventListenerの第二引数はコールバックじゃん?
んで、そのコールバックが実行される際に引数にイベントオブジェクトが渡される
それを引き取ってるのがaEvtで、結果論として使ってないだけ

他にも、replaceとかでもコールバックの引数のところに

string.replace(/fuga(hoge|hage)/,function( $0,$1 ){
    // ごにょごにょ
});

と勢い余って変数名を書いちゃうこともあろうて

386 :385:2011/06/07(火) 02:09:00.98 ID:iBr2GC1R
後半わかりづらかった

例え使う予定があってもなくても、来ると分かっているなら
引数の変数名は、書きたくなっちゃうよね
ってことです

387 :Name_Not_Found:2011/06/07(火) 02:37:09.43 ID:???
a:linkの@roleを上書きできるようになったのは2011/4/11草案の後

388 : 忍法帖【Lv=5,xxxP】 :2011/06/07(火) 02:58:17.46 ID:???
>>385
ありがとうございます
実はコールバックはあまり仕組みを理解していなかったり
これから勉強してきます

389 :Name_Not_Found:2011/06/07(火) 12:31:38.64 ID:???
JQueryのページ内遷移とかタブ切り替えライブラリを利用するとき、
htmlの記述は href="#menu1"、href="#menu2" のように単純にアンカーにハッシュがついていて、
いざクリックするとそのライブラリで指定した動作はするけれども
urlには #menu1、#menu2 などは追加されません。これはどうやっているのでしょうか?

JQueryではなく自分でいろいろ試作しているときに
location.hash = "";
location.href.replace(/#/$,'');
などとしてみましたが、#が残ってしまいます。


390 :Name_Not_Found:2011/06/07(火) 12:37:33.25 ID:???
>>389
event.preventDefault()

391 :Name_Not_Found:2011/06/07(火) 12:39:40.62 ID:iBr2GC1R
単にevent.preventDefault()してるだけじゃないかと

<a href="#hoeg">

querySelector("a[href=#hoge]").addEventListener("click",function(evt){
    evt.preventDefault(); // これでa要素の動作はなかったことに
},false);

392 :Name_Not_Found:2011/06/07(火) 12:57:40.50 ID:???
ありがとうございました。

393 :Name_Not_Found:2011/06/07(火) 13:38:58.24 ID:???
$xってどこで定義されてるんですか?
ブラウザの実装?

394 :Name_Not_Found:2011/06/07(火) 14:07:23.60 ID:jzg1ApoX
任意のページ(またはサイト)の画像を収集したい

java scriptで上記のことはできますでしょうか。

任意のサイトの画像を収集しダウンロードする
デスクトップ上で使うスタンドアローンの
フリーソフトなどは多くあるのですが、

そうではなく、
web上で、任意のurlを入力して送信ボタンを押すと
そのurlにある画像を全て収集し、表示させる、という
サイトを作りたいです。

調べているのですが、なかなか見つかりません。。

そもそもphpとかの言語になるのでしょうか?
java scriptでそういったことができますでしょうか?
出来るばあい、ざっくりとどのような
コードやメソッドが必要になりますでしょうか。

ご存知の方いらっしゃいましたら、
何卒よろしくお願いいたします。 。

395 :Name_Not_Found:2011/06/07(火) 14:28:40.55 ID:???
>>2 Q1
通常は別ドメインのサイトはアクセスできない。>>255
作れたとしても特定のサイトに集中とかしたらブロックされそうだな。

396 :Name_Not_Found:2011/06/07(火) 15:28:34.91 ID:???
>>394
javascript:(function(){var img=document.querySelectorAll('img');for(var i=0;i<img.length;i++){window.open(img[i].src);}})();

397 :Name_Not_Found:2011/06/07(火) 15:30:37.14 ID:???
もしアクセスできるとしたら持ってきたソースからimgとりだすだけじゃん
それくらいわかれよ

398 :Name_Not_Found:2011/06/07(火) 15:41:39.16 ID:jzg1ApoX
>>396
ありがとうございます!!
1つ質問させてください。
document.querySelectorAllというメソッドは
IE8からの対応でIE7やFireFoxでは使えないのでしょうか?

399 :Name_Not_Found:2011/06/07(火) 15:44:42.23 ID:???
試してみればいいじゃない。

400 :Name_Not_Found:2011/06/07(火) 17:34:32.55 ID:???
どっちにしろそんな迷惑なコードは動かないだろ
やるとしたら自分で言ってるようにサーバサイドでどうにかする必要がある

401 :Name_Not_Found:2011/06/07(火) 17:47:03.46 ID:jzg1ApoX
>>399
はい、試してみます!

>>400
なるほど、phpとかperlですかね。
こちらもちょっと試してみます。

402 :akiyan:2011/06/07(火) 18:28:59.20 ID:0SPLxjds
おまえらきめえwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

403 :akiyan:2011/06/07(火) 18:29:52.73 ID:0SPLxjds
マジ呼吸すんなってwwwwwwwww
あ?俺の顔面みてないやつまじ土下座しろ
わかった?早くakiyanでぐぐって顔面みて土下座しろよ
わかったな
不細工率のおおいIT業界じゃイケメン重宝 俺重宝!ヘイヘイヘイ!!!

404 :Name_Not_Found:2011/06/07(火) 18:33:00.25 ID:0SPLxjds
ってakiyanに書き込めって命令されました

405 :Name_Not_Found:2011/06/07(火) 19:25:12.95 ID:???
とあるフィールドのonKeyPressイベントで
event.keyCode===13?funcHoge():void(0);
とコーディングしてあるのですが、このvoid(0)の使い方はありなんですか?
要は
if(event.keyCode===13)[
funcHoge();
}
と、やりたいだけなのですが、
void(0)の代わりにreturn false();とかだとダメ?なようです。
IE6対応?なのか、な

406 :Name_Not_Found:2011/06/07(火) 19:29:36.94 ID:???
>>404
ttp://www.ideaxidea.com/archives/bkaigi_akiyan.jpg
これ?不細工じゃんw

407 :Name_Not_Found:2011/06/07(火) 19:34:00.24 ID:???
普通だな
てかちょっと弄るだけで女としてパスできそうな顔だな

408 :Name_Not_Found:2011/06/07(火) 19:45:51.36 ID:???
テキストフォーム内のある範囲を選択し、指定したキーを押すとその範囲を取得するようにしたいのですが、うまくいきません。どうしたらいいでしょうか。

var form = document.getElementById("srch");
var str = form.value; var strLength = str.length;
form.setSelectionRange(strLength-2,strLength);
var r = window.getSelection().getRangeAt(0);
alert(r) // 空白になる

409 :Name_Not_Found:2011/06/07(火) 19:53:55.51 ID:iBr2GC1R
>>405
voidの使い方がありかと言われればアリだとは思うけど、素直に
if(event.keyCode === 13) funcHoge();

でいいと思う。文字数も少ないし

return falseの件は、まず最後のカッコいらない
んで、return しちゃうとそこで処理終わっちゃうから
それが適切かどうかも怪しい

IE6云々は多分関係ない

410 :Name_Not_Found:2011/06/07(火) 20:15:04.07 ID:???
ごめんなさい、初心者で下らない質問ですがヒントだけでも頂けると助かります・・・
自分のサイトにこちらのウェブコミックビューア→http://viewer.webcomicranking.com/
を使用して、一つのページ内に2,3つ別の画像郡(サンプルの下の四コマ漫画劇場)を表示させたいのですが、どうしても2つ目以降になると
・・・ の文字が出て、表示されなくなります。
すみません、よろしくお願いします。

411 :Name_Not_Found:2011/06/07(火) 20:30:21.61 ID:iBr2GC1R
idで特定してるみたいだから2つは無理なんじゃないかと

412 :405:2011/06/07(火) 23:13:14.18 ID:???
>>409
ありがとうございます。
return falseでもvoid(0)でも問題なさそうですが、確かにelse側の処理が不要なら
何もしない方が処理をスルーするのでパフォーマンス的にも良さそうですね

413 :akiyan:2011/06/07(火) 23:35:09.98 ID:0SPLxjds
きずついた

414 :akiyan:2011/06/07(火) 23:36:31.82 ID:0SPLxjds
>>406
>>407
訴えるぞ?
お前侮辱か?民事で訴えてやろうか?あ?
名誉毀損だな
いい加減にしろ!!

415 :amachang:2011/06/07(火) 23:36:56.93 ID:0SPLxjds
いい加減にしろ!!!
訴えるぞ!!!

416 :Name_Not_Found:2011/06/08(水) 01:17:24.38 ID:???
>>415
今日、晩飯の献立なんだった?

417 :Name_Not_Found:2011/06/08(水) 03:13:02.62 ID:???
<ul>
  <li>HOGE
    <ul>
      <li>hoge1</li>
      <li>hoge2</li>
      <li>hoge3</li>
    </ul>
  </li>
  <li>HAGE
    <ul>
      <li>hage1</li>
      <li>hage2</li>
    </ul>
  </li>
</ul>

こんな感じのメニューがあって、
ul>liをクリックしたらul>li>ul>liをペローンと出すJavaScriptを書いてるのですが、
ul>liのところにonmouseover="peron()" onmouseout="kurukuru()"
と今まで記述してたのですが、このソースには書かずに、
onload時にリスナーに登録したほうがソースの見た目は綺麗になると思いました。
ここで疑問なんですが、ベタベタにソースにonmouseover="peron()"とか書いたほうが、
速度面じゃやっぱり有利でしょうか?

418 :Name_Not_Found:2011/06/08(水) 06:23:58.87 ID:???
>>417
気にするほどのパフォーマンス差は出ない。
可読性を優先しといた方がいい

419 :Name_Not_Found:2011/06/08(水) 06:43:15.20 ID:???
Firefoxの場合、
ハッシュ付きのURLが渡されたらそれを無効化できない、という仕様でしょうか?

たとえば、外部ページから index.html#footer などでリンクしてきたとき、
ページの冒頭で
location.hash = "";
とすると Chrome や Safari ではハッシュが無効となって、ページの先頭が表示されます。
しかし Firefoxは <div id="footer"></div> の表示部まで移動してしまします。

Firefoxでも index.html#footer の #footerを無効にするにはどうしたらよいでしょうか。




420 :Name_Not_Found:2011/06/08(水) 06:48:12.23 ID:???
>>418
優先すべきは可読性よりも堅牢性

421 :Name_Not_Found:2011/06/08(水) 07:37:44.61 ID:???
>>355
下の make_mezamasi は「特定の時刻を渡すと、その時刻をセットした目覚まし時計を作る」関数と考える。
引数 tsec がセットする時刻(ミリ秒)。戻り値は関数。
戻り値の関数を実行すると、1秒ごとに時間をチェック(setInterval)して、
設定時刻を過ぎた時点で1秒ごとのチェックを終了(clearInterval)して、
sound2Play() を実行する。

上の関数では、現在時刻(nsec)と設定時刻(tsec)を計算してる。
設定時刻はとりあえず当日として設定(setHour〜setMilliseconds)しておいて、
設定時刻を既に過ぎていた(現在時刻が7時30分、設定時刻が7時ちょうどなど)場合、
設定時刻に24*60*60*1000を足して明日の時刻にして、目覚まし時計を作る。

作った目覚まし時計は、設定時刻の30秒前になったらオンにする( setTimeout(mezamasi, n) )。
ただし、作った時点で既に30秒を切っていたらすぐにオンにする( setTimeout(mezamasi, 0) )。
nはその計算をしてる。

422 :Name_Not_Found:2011/06/08(水) 07:53:49.23 ID:???
>>420
納期>仕様>堅牢性>柔軟性>可読性>>>>>>エンジニアの命

423 :Name_Not_Found:2011/06/08(水) 07:57:01.60 ID:???
>>422
>>>>>ユーザーの財布

424 :Name_Not_Found:2011/06/08(水) 08:08:12.04 ID:???
>>>>>個人情報

425 :Name_Not_Found:2011/06/08(水) 09:57:34.29 ID:???
<dl>
1
<dt>1<dd>
</dl>

<dl>
2
<dt>2<dd>
</dl>

<dl>
3
<dt>3<dd>
</dl>

のHTMLにある要素をjavascriptで取得して
hoge[0]=<dl>1<dt>1<dd></dl>
hoge[1]=<dl>2<dt>2<dd></dl>
hoge[2]=<dl>3<dt>3<dd></dl>
と配列に格納したいのですがgetElementsByTagNameでやってもどーも上手く行きません
何か良い方法あるのでしょうか?

426 :Name_Not_Found:2011/06/08(水) 10:04:51.59 ID:???
よくある「数字の3桁ごとに[,]を付ける」という
while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
だけど、いったいどういう動きをしているのかサッパリ

このwhile文の中身を数行に分けて書くとどうなるの?
while(num != num){
num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2");
}
じゃないよね?

427 :Name_Not_Found:2011/06/08(水) 10:29:01.74 ID:???
do {
var num_tmp = num;
num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2");
} while(num_tmp != num)

428 :Name_Not_Found:2011/06/08(水) 10:34:40.26 ID:???
>>427
後判定…そんなのもあるのか。

何となく自己解決版
while(num != old){ //oldとnumが一致するまでループ
old = num;//1個前のデータをoldに
num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2");
}
無駄な領域作らないからそっちのほうが良いかも

ありがとう

429 : 忍法帖【Lv=25,xxxPT】 :2011/06/08(水) 10:59:49.59 ID:h3pY8BZl
何と! 無料で被リンク1万件貰えます。

今すぐに下のURLをクリック。

http://p.tl/5s7j

FireFoxでエラーになる場合は、IEで登録してね。



430 :Name_Not_Found:2011/06/08(水) 12:09:56.60 ID:ZZKVZkGz
>>408
スルー気味なのであげ

431 :Name_Not_Found:2011/06/08(水) 12:14:40.80 ID:???
>>419

432 :Name_Not_Found:2011/06/08(水) 12:50:48.57 ID:???
while('笑');

num.replace(/\B(?=(?:\d{3})+$)/g, ',')

433 :Name_Not_Found:2011/06/08(水) 15:36:50.31 ID:???
function a(n = 100) {
alert(n);
}
a();

メソッドa()に引数を与えなかった場合は100を与えるというのはjavascriptで実行できませんでした

PHPで書くとこういうのです
<?php
function a($n = 100) {
return $n;
}
echo a();
?>

こんな感じの動作をjavascriptではどのように書けますか?

434 :Name_Not_Found:2011/06/08(水) 15:49:22.58 ID:???
function a(n) {
if (n) {
alert(n)
} else {
alert(100);
}
}
a();

435 :Name_Not_Found:2011/06/08(水) 15:52:24.71 ID:???
function a(n) {
n = n || 100;
alert(n);
}
a();

引数の初期値の設定はPHPがわかりやすいね

436 :Name_Not_Found:2011/06/08(水) 15:57:46.53 ID:???
afunction a(n) {
n = typeof !== 'undefined' ? n : 100;
alert(n);
}
初期化するしかない
n=n||100;とかalert(n||100);
って書き方もできるけど0が来た場合100が表示されるからなー

437 :Name_Not_Found:2011/06/08(水) 15:59:23.79 ID:???
あれだな、もっと言えばundefinedを受け取る場合もあるから
argumentsで引数の数をチェックすべきだな・・・

438 :Name_Not_Found:2011/06/08(水) 16:01:10.69 ID:???
まぁ重要なところはJavaScriptでは引数を記述しなくても
それ自体にエラーは起きないということだな

439 : 忍法帖【Lv=29,xxxPT】 :2011/06/08(水) 16:09:59.82 ID:4VGx5JDJ
何と! 無料で被リンク1万件貰えます。

今すぐに下のURLをクリック。

http://p.tl/5s7j

FireFoxでエラーになる場合は、IEで登録してね。


440 :Name_Not_Found:2011/06/08(水) 16:42:48.15 ID:???
var date = new Date();
↑このdateをタイムスタンプに変換する方法をご教示お願いします

441 :Name_Not_Found:2011/06/08(水) 16:44:17.96 ID:DfrynOA1
ちょっとはぐぐれよ
getTIme()

442 :440:2011/06/08(水) 16:44:59.39 ID:???
すいませんgetTimeで出来ました

443 :Name_Not_Found:2011/06/08(水) 16:55:45.79 ID:???
439みたいなのよく見かけるけど何なの?
短縮URL怖くて踏めない

444 :Name_Not_Found:2011/06/08(水) 17:00:32.52 ID:???
スルーしなさい

445 :amachang:2011/06/08(水) 17:03:35.22 ID:???
ここのスレいらないよ
僕がいればこのスレだって不要

僕>>>>>ここのスレ

446 :amachang:2011/06/08(水) 17:03:46.57 ID:???
僕はjavascriptマスター

447 :Name_Not_Found:2011/06/08(水) 17:09:50.16 ID:DfrynOA1
いや俺こそJavaScriptマイスター

448 :Name_Not_Found:2011/06/08(水) 17:22:01.90 ID:???
んじゃ俺は素股で

449 :Name_Not_Found:2011/06/08(水) 17:27:57.71 ID:???
俺はjavascriptになれない・・・。

450 :Name_Not_Found:2011/06/08(水) 17:56:06.44 ID:???
僕はJavaScriptのJ

451 :Name_Not_Found:2011/06/08(水) 19:09:31.71 ID:???
じゃあ俺ecma

452 :Name_Not_Found:2011/06/08(水) 19:28:59.43 ID:???
じゃぁじゃぁJScript

453 :Name_Not_Found:2011/06/08(水) 20:12:30.72 ID:???
僕はCoffeeScriptちゃん!

454 :Name_Not_Found:2011/06/09(木) 12:05:45.86 ID:???
へい、MocaScriptをひとつ

455 :Name_Not_Found:2011/06/09(木) 13:45:09.76 ID:???
idではなくclassのHTMLをinnerHTMLで変更したいんですが、できます?

456 :Name_Not_Found:2011/06/09(木) 14:13:48.28 ID:???
>>455
innerHTMLでやることじゃない


457 :Name_Not_Found:2011/06/09(木) 14:16:56.37 ID:???
int[] document.getElementsByClassName(String className)

usage

var hoge = document.getElementsByClassName('hoge');
alert(hoge[0].innerHTML);

458 :457:2011/06/09(木) 14:23:11.13 ID:???
ごめん適当にかいた
returnはHTMLCollectionだ

HTMLCollection document.getElementsByClassName(String className)

usage

var hoge = document.getElementsByClassName('hoge');
alert(hoge.item(0).innerHTML);

459 :Name_Not_Found:2011/06/09(木) 14:23:24.41 ID:???
> var hoge = document.getElementsByClassName('hoge');
> alert(hoge[0].innerHTML);

ByClassNameって使わないほうがいいんじゃなかったっけ?
昔の話だし、理由をよく理解してなかったし勘違いならそれでいいけど

460 :457:2011/06/09(木) 14:34:41.27 ID:???
>>459
IEで対応してなかったからね
どこまで対応してないか調べたら8は対応してなかったわ

おとなしくquerySelectorAll使ったほうがいいかも

461 :Name_Not_Found:2011/06/09(木) 14:38:15.43 ID:???
>>460
今調べたらIE9は対応してた
IE9で本当にIEは変わったな

462 :Name_Not_Found:2011/06/09(木) 14:41:52.60 ID:???
使わない方がいいのではなく、バカには使えない、わりとマジで
返ってくるNodeListがliveだから、classNameを変更するそばからリストから消えていく

463 :Name_Not_Found:2011/06/09(木) 15:03:31.36 ID:???
>>461
今までwindowsのデフォって立場に甘えて他のブラウザから大きく遅れてたからね
遅すぎて他ブラウザの猛攻を許してしまった感じもあるけどー

464 :Name_Not_Found:2011/06/09(木) 15:09:55.76 ID:???
連続レススマソ
>>462
別にDOM操作しないのなら気にしないでいいんじゃね?
>>455みたいに変更するのは確かに「live な」NodeListの影響出てくるけど
>>458のような変更せずただ値を取得するだけなら問題ないだろー
用は使いようだけど

465 :Name_Not_Found:2011/06/09(木) 15:16:28.35 ID:???
>>462
だから賢い奴はgetElementsByClassNameを一回実行してキャッシュしておく
あとはノード挿入除去に応じてキャッシュが勝手にアップデートされる
何度も同じgetElementsByClassNameを呼ぶ奴は賢くない

466 :Name_Not_Found:2011/06/09(木) 15:44:47.74 ID:???
リンクファイルの上にマウスカーソルを持っていったときにツールチップ(ふきだし)を表示させることしています。
見た目を良くしたい理由で、http://labs.unitinteractive.com/unitip.phpのjavascriptを使用しています。

通常は問題ないのですが、Flashと重なるとツールチップの表示が下にもぐりこみ、Flashの絵が最上位に表示されます。
ツールチップを最上位に表示させることは可能でしょうか?




467 :466:2011/06/09(木) 15:45:04.06 ID:???
Flashは以下のように表示をさせています。

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="600" height="180">
<param name="movie" value="img/flash/main_msg/main_msg.swf" />
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<embed src="img/flash/main_msg/main_msg.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="180">
</object>

468 :Name_Not_Found:2011/06/09(木) 15:49:40.55 ID:???
丸投げやスクリプト改造の依頼は受け付けておりませーん

469 :Name_Not_Found:2011/06/09(木) 15:54:55.34 ID:???
は?なんで??

470 :Name_Not_Found:2011/06/09(木) 16:00:52.55 ID:???
>>1

471 :Name_Not_Found:2011/06/09(木) 16:03:56.57 ID:???
上下関係はJavaScript関係ないし
ここで質問すること自体が的外れ

もちろん、「どこの担当ですか?」なんて質問も的外れだからするなよ

472 :Name_Not_Found:2011/06/09(木) 16:08:05.20 ID:???
ワロタ

473 :Name_Not_Found:2011/06/09(木) 16:17:21.71 ID:???
>>467
あえて言うなら質問に答えられない、って感じ
他者のjavascriptのある特定の部分が分からないとかならわかるけど、全体をポンと置いて質問ってのはなぁ

YAHOO知恵袋とかで質問するといいかも


それとちょっと皆冷たすぎだぞ

474 :Name_Not_Found:2011/06/09(木) 16:18:09.79 ID:???
>>466
lancersで1万円ぐらいで成立してそうな内容ですよこれ

475 :Name_Not_Found:2011/06/09(木) 16:40:30.23 ID:???
>>473
見当はつくぞ。
ホントにその気になればそりゃ答えられるだろうが、
ただし、解決までクソ面倒なのも見当がつくがな。

なにせ、自分が直接手を出せるわけじゃない。
ここにこんな質問持ってくるレベルなんだからどの程度なのかも推測がつく。
1度や2度の回答では絶対に解決しないことも分かる。
んで、これに長いこと付き合ってると「スレ違い他でやれ」と
言われるところまで全部想定済みだ。

先に書いたように、そもそもJavaScript関係ないし。
いじるべきなのはスクリプト以外の場所だ。

476 :Name_Not_Found:2011/06/09(木) 16:43:21.78 ID:???
1万もなにもFlashとのz-indexなら
<param name="wmode" value="transparent">
あたりで解決したはずだが

477 :Name_Not_Found:2011/06/09(木) 16:46:29.20 ID:???
>>466-475
なんでこの質問でもめてるの?「ツールチップの位置に合わせて
下にiframeを配置すれ」このひとことで終りじゃないの?

478 :466:2011/06/09(木) 16:53:30.63 ID:???
いろいろ、調べたら自己解決しましたm(_ _)m

479 :Name_Not_Found:2011/06/09(木) 17:05:10.10 ID:???
やたらprototypeで無理に書きたがる人がいますけど何でprototypeを使うんですか?
functionじゃだめなの?

480 :Name_Not_Found:2011/06/09(木) 17:07:37.21 ID:???
好きにしなさいよ

481 :Name_Not_Found:2011/06/09(木) 18:05:37.27 ID:???
わしはライブラリは全く使わずにゴリゴリ書いているよ(`・ω・´)

482 :Name_Not_Found:2011/06/09(木) 18:31:45.68 ID:???
老害wwwww

483 :Name_Not_Found:2011/06/09(木) 18:37:13.31 ID:???
それを使うことでコードが自然に見えるようになるなら、
そうすることにはそれなりの意味がある。
無理に書きたがってるだけかどうかの判断は難しいな。力量によるところがある。

で、本当の意味で「無理に書きたがる」場合には、2つの理由がある。
ラジオを分解してみるのが好きなタイプと、オモチャを飽きるまでいじるタイプだ。
前者は経験として有用だから温かく見守るべし。
後者はどうにもならんから放置すべし。

484 :Name_Not_Found:2011/06/09(木) 19:03:04.62 ID:???
>>483
後者が老害か
ウチの現場はJSがまともに使える奴が少なくてprototype呼び出してるのに
総スルーなコピペコーディングばっかw
邪魔なのはLIBRARYか老害エンジニアか答えは明らか
先日リーダー権限で部長とPMに訴えて外したら老人の会社から俺にクレームきた
話し合いで老人がライブラリ使わない方がワシは生産性高いと言うので

ライブラリ使えない人は要りませんと言ったら泣いてた
時代に取り残される。これは他人事じゃないなと思った


485 :Name_Not_Found:2011/06/09(木) 19:13:38.06 ID:vnaIaGOV
老人=ライブラリ使えない、とか漫画じゃないんだからw
単にその人が不器用なだけなんじゃないかと…

486 :Name_Not_Found:2011/06/09(木) 19:16:00.49 ID:???
>>484
君のその文章力は会社の中で大丈夫なのか?w

487 :Name_Not_Found:2011/06/09(木) 19:21:05.27 ID:???
>>479

var a;
function set(_a){a = _a;}
function get(){return a;}

var Hoge = function(){};
Hoge.prototype = {
a: null,
set: function(_a){this.a=_a};
get: function(){return a};
};

ってことを言ってるのかと思った

488 :Name_Not_Found:2011/06/09(木) 19:26:01.10 ID:???
>>487
そうでそちっちのほうでs
jqueryのライバルであるprototype.jsの事ではございません

489 :Name_Not_Found:2011/06/09(木) 19:39:00.22 ID:???
>>484
それは>>479と逆のケースだから、理由も変わってくるぞw

ベタベタに書く理由は大きく2つ。
ベタベタに書くことでトラブルを回避できることを知っている場合と、
ベタベタにしか書けない場合だな。

490 :Name_Not_Found:2011/06/09(木) 19:44:24.16 ID:???
>>488
単純にクラスベースになれてるとそっちのほうがコード的にしっくりくるからじゃね?
prototypeキーワード使ってる人はC++とかJavaとかそういう記事書いてる人に多いと思う
スコープ汚染どうこうは詳しくないので他の人に頼む

491 :Name_Not_Found:2011/06/09(木) 19:47:52.50 ID:???
>>479はどういう場合に「無理してる」って感じるの

492 :Name_Not_Found:2011/06/09(木) 20:00:17.81 ID:???
別の話になるけどクラスベースのつもりでprototype 書いている人は何だかなあって思う

493 :Name_Not_Found:2011/06/09(木) 20:09:45.07 ID:vnaIaGOV
>>488
前者の方で書いてると
変数名考えるのが面倒くさいんだぜ
機能ごとに閉じたスコープが作れると楽チン

494 :Name_Not_Found:2011/06/09(木) 20:59:43.34 ID:???
>>493
甘いな
そのうちprototypeのメンバーもいっぱいになって
名前考えるの大変になるんだぜ

495 :Name_Not_Found:2011/06/09(木) 21:10:00.33 ID:???
それは考え方自体が変なんじゃないか?w

496 :Name_Not_Found:2011/06/09(木) 21:13:20.33 ID:???
どう考えても機能分割できてないだろw

自分の古いコード見て「何でこのメソッド(のグループ)とこっちのメソッド(〃)を
同じ扱いにしてんだよ」って突っ込むことはよくある。
別の名前空間になるように割ってやると、これがまた綺麗に割れるんだw

497 :Name_Not_Found:2011/06/09(木) 21:16:34.62 ID:vnaIaGOV
>>496
あまり考えずに勢いで書きだすと、そういう事になりやすいかも
ある程度書いちゃってから、失敗したなー、やってもうたなー、って
思うことある

最初にきっちりかっちり設計詰めてからやると、
ポロリ落としのように、綺麗に出ますな

498 :Name_Not_Found:2011/06/09(木) 21:26:42.22 ID:???
>>487
前者は名前空間が共有される他にもクロージャを無駄に生産してる。

499 :Name_Not_Found:2011/06/09(木) 21:31:42.62 ID:???
規模にもよる
あるウィジェットの計算hogeが汎用化できると気づきNumberに移動させた
でも、もとからNumberにあるメンバーとは区別したい
名前空間が深くなって使いづれ
ディレクトリ型の限界

500 :Name_Not_Found:2011/06/09(木) 21:36:38.98 ID:???
jQuery全盛期に無駄クロージャの大量生成を言っても仕方ない

501 :Name_Not_Found:2011/06/09(木) 21:38:31.45 ID:???
今はスピードの時代だから無駄じゃないと思うけどね

502 :Name_Not_Found:2011/06/09(木) 23:10:04.93 ID:???
>>484
求められる品質の物をより短時間で出来るならどっちだって良いんじゃないのか?
一般的にはLibrary使った方が短時間で済むから使うんであって、それより早く書けるならそれに越したことはない。

503 :Name_Not_Found:2011/06/09(木) 23:18:03.26 ID:???
>>500
その理屈はなんかおかしい

504 :Name_Not_Found:2011/06/09(木) 23:22:17.42 ID:???
>>484
>ウチの現場はJSがまともに使える奴が少なくてprototype呼び出してるのに

現場のレベルが低すぎるのでPrototypeで底上げしてるということ?

505 :Name_Not_Found:2011/06/09(木) 23:22:18.40 ID:???
prototypeはかっこつけ
functionで十分

506 :Name_Not_Found:2011/06/09(木) 23:24:23.19 ID:???
>>503
実際にそんなのばっかじゃん
そのくせわずかなスピード向上記事にとびついたり、何の冗談かと思ってる

507 :Name_Not_Found:2011/06/10(金) 00:01:31.78 ID:???
>>506
おまえはパフォーマンスに興味がないだけ

508 :Name_Not_Found:2011/06/10(金) 02:01:33.18 ID:???
>>504
察するに「ウチの現場はJSがまともに使える奴が少ない。
たとえば、prototype.js読み込んでるのに全く使わない」という意味。

>>502
ライブラリ使うのは環境(ブラウザ)の差を吸収する部分が大きい。
差の吸収なんて定型文だし、そんなのいちいち自作してたらテスト含めて手間大きすぎ。
それを分かってる人間がライブラリ使わないってのは、特に業務じゃありえんだろ。
どう考えても、自作の方が要求品質を提供するまでのコストが大きい。

509 :Name_Not_Found:2011/06/10(金) 02:18:00.27 ID:???
>>508
>たとえば、prototype.js読み込んでるのに全く使わない」という意味。
それ俺だわ
ajax部分も気づけば自分で書いてたわ
$系の関数使うぐらいしか使いこなせていない現実
JSをある程度使えるのに応用のきかないフレームワークの関数群覚えるのはなんか抵抗あるんだよね
そんで読み込んだはいいが仕様書はみてないから簡単なものしか使えないという・・・
車輪の再発明を喜んでやっちまう非効率野郎なので性格変えないとな

510 :Name_Not_Found:2011/06/10(金) 02:26:13.81 ID:???
prototype.jsだから使わないとか・・・
これはありえる話かもしれない
まぁ例え話だから実際は違うんだろうけど・・・

511 :Name_Not_Found:2011/06/10(金) 04:10:29.18 ID:???
ライブラリを使う使わないと、ライブラリの質は別の話だからなあ
仕事では使っても、プライベートじゃ使いたくないってのはある

512 :Name_Not_Found:2011/06/10(金) 07:36:16.42 ID:???
安定するまで手を出したくないってのは、新ブラウザや
ブラウザのメジャーバージョンアップの機能追加と同じだなw
ただ、その名前をよく聞くようになったなら、どんなものなのか
調べておくべきだって点でも同じ。
調べない使えないでは、少なくとも仕事にゃならない。

513 :Name_Not_Found:2011/06/10(金) 08:17:00.82 ID:???
いやprototype.jsを使いたくない理由は安定とは別のところにあるんしないかな
グローバル変数使いすぎとかprototype で拡張しすぎとか


514 :Name_Not_Found:2011/06/10(金) 08:20:54.63 ID:???
>>513
prototype.jsがウケた理由も
prototype拡張していいのか!
privateなんかいらなかったんや!
という所だったんだが

515 :Name_Not_Found:2011/06/10(金) 08:24:02.90 ID:???
過去ログにもあると思うけど
当時はビルトインのprototypeにぺたぺたつけんなと言っても
ぜんぜん聞く耳もってくれなかったんだぜ

516 :Name_Not_Found:2011/06/10(金) 08:32:37.36 ID:???
行儀は悪いが、代替出るまでは使う価値があったのも確か。

517 :Name_Not_Found:2011/06/10(金) 09:18:12.83 ID:???
みんな真似し始めるからなあ
みんなやってる=いいものだと信じて疑わない

518 :Name_Not_Found:2011/06/10(金) 09:22:36.26 ID:???
まともな継承ができない構造が悪い

519 :Name_Not_Found:2011/06/10(金) 09:25:10.00 ID:???
まともな継承とは何か

520 :Name_Not_Found:2011/06/10(金) 09:34:06.90 ID:???
クラスがないのに継承しようとするのが悪い。
自分でクラス(っぽいもの)作る時に、必要なメソッドが他のクラス(っぽいもの)にあるなら、
自クラス内でそれを借りるか、インスタンスにそのメソッド突っ込めばおk
丸ごと継承するのは静的クラスしかない言語の手法

521 :Name_Not_Found:2011/06/10(金) 09:48:49.07 ID:???
プロトタイプを作ってObject.createでクローン&固有プロパティだけ上書き
これ一択

522 :Name_Not_Found:2011/06/10(金) 09:52:15.15 ID:???
いちいちクローン作った物をいじってちゃプロトタイプのよさを生かせない
たしかにオーバライドは必要なときはあるけど
オーバライドしないときはそのままくっつけちゃっていいんじゃないかと

523 :Name_Not_Found:2011/06/10(金) 10:09:04.26 ID:???
>>522
めんどうだからクローンと書いたが
Object.create(O, desc)で生成するのはOをプロトタイプにし
descを固有プロパティに持つオブジェクトな

524 :Name_Not_Found:2011/06/10(金) 11:46:06.56 ID:???
フレームのボーダーラインの現在の高さとか取得する方法ってありますか?

525 :Name_Not_Found:2011/06/10(金) 12:21:08.36 ID:???
生javascriptを書くのは時代遅れ
趣味でやってるなら生で書いても誰も文句は言わないけど仕事でやるなら時間との勝負なんだよ

526 :Name_Not_Found:2011/06/10(金) 12:48:35.43 ID:???
どんなライブラリ使ってても生の部分は出るわけだが。

527 :Name_Not_Found:2011/06/10(金) 13:33:55.51 ID:???
a=1+1; は生だし、s=""+a; も生だし、Math.floor(Math.log(n)); も生だな。

C++でポインタ理解してなくてCStringしか使えなかった頃を思い出す。
中身理解しないままライブラリ使う奴は始末に負えない。
無駄が(非常識なほど)大きいプログラムを書いておきながら、それに気付かないw

528 :Name_Not_Found:2011/06/10(金) 14:26:30.06 ID:???
Ajaxを使おうと思ったのですが
Ajaxで呼び出した要素のスクリプトが使えないと書いてありました

コレって例えばHTMLが記述されてるテキストを呼び出して
そこに記述されてるscriptやCSSが使えないという意味で
元々そのページにjavascriptを用意して、それを呼び出したテキストにあるonClickなどで呼び出すことは可能ということなのでしょうか?

529 :Name_Not_Found:2011/06/10(金) 14:33:19.87 ID:???
うん

530 :Name_Not_Found:2011/06/10(金) 15:04:19.79 ID:Ux58BUOJ
>>528
prototype.jsとかだと
JS部分をソースから引っ掻いてきてeval()に渡して実行
みたいなことしてるね

531 :Name_Not_Found:2011/06/10(金) 15:20:16.60 ID:???
なるほど、ありがとうございますー
つまり前もって用意しとけばCSSもscriptもeval使わなくて呼び出せるんですね!

532 :Name_Not_Found:2011/06/10(金) 15:28:27.78 ID:???
呼び出した部分の
<style type="text/javascript">
  |
</script>
が実行できないだけだからな
当たり前だが
<script language="JavaScript" type="text/javascript" src="○○.js"></script>


533 :Name_Not_Found:2011/06/10(金) 15:33:56.57 ID:???
なんでstyleなのかは良いとして
deferつけても無理だっけ?


534 :Name_Not_Found:2011/06/10(金) 15:47:14.22 ID:???
>>532
ごめん寝ぼけてた気にしないで

535 :Name_Not_Found:2011/06/10(金) 18:54:18.52 ID:???
>>525
ライブラリも生のJSだろ
別もんだと思ってるから、非効率で生産性のないものになるんだ

536 :Name_Not_Found:2011/06/10(金) 19:06:56.16 ID:???
>>535
生の意味分かってないなら沈黙が金。
document.getElementById は仕様で定められた純インターフェース。
$() は、仕様と自分以外の第三者が勝手に作ったインターフェース。
後者ありき(=第三者のライブラリを噛ませること前提)で作ったプログラムは
生とは言わない。生ならgetElementByIdを直接呼ぶ関数を自分で作る。

537 :Name_Not_Found:2011/06/10(金) 19:19:09.47 ID:???
>>536
だからそう言ってんだろ
なーにが沈黙が金だ、ニホンゴワカリマスカ?

538 :Name_Not_Found:2011/06/10(金) 19:23:14.30 ID:???
じゃあライブラリをコピペして使うのは生
ライブラリをDLしてきて、そのまま使うのは生じゃないと言う事だね
もう関係なくなっちゃたね
凄くどうでもいいね


539 :Name_Not_Found:2011/06/10(金) 19:33:34.47 ID:???
>>537
お前、「だからそう言ってんだろ」って、
536の文章が537と全く同じ意味だと本気でそう言ってんのか?

……義務教育終わってるか?

>>538
バカか。
ブラウザのバージョンアップで仕様が変わった時に、ライブラリ側が
対応してるか確認取れるまで動作が保証できなくなるのがライブラリ使用プログラムだ。
ダウンロードとか全然関係ねぇよ。現実理解してないにもほどがあるw

540 :Name_Not_Found:2011/06/10(金) 19:34:46.33 ID:???
ミスった。"536の文章が537"じゃなくて"535の文章が536"だ。

541 :Name_Not_Found:2011/06/10(金) 19:36:43.89 ID:???
>>536
いいたいことほわかるけど「生」とかいうオレオレ用語を使うのが誤解のもとなんじゃないの?

542 :Name_Not_Found:2011/06/10(金) 19:38:04.20 ID:???
>>541
時間と勝負しながら2chで無駄な議論したいんだよ察してやれ

543 :Name_Not_Found:2011/06/10(金) 19:41:38.32 ID:???
>>542
二度手間に費やした方がよっぽど時間かかるでしょ

544 :Name_Not_Found:2011/06/10(金) 19:42:08.18 ID:???
>>525と同じ意味で「生」と言ってるのは>>535
>>536は「生」をホストオブジェクトの意味ですりかえている
ちゃんとホストオブジェクトというべきだったな

545 :Name_Not_Found:2011/06/10(金) 19:42:34.55 ID:???
>>1
> (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。

546 :Name_Not_Found:2011/06/10(金) 19:59:50.34 ID:wsWUZkE7
まぁ、真の意味でライブラリと呼べるのはホストオブジェクトだけなんだよな
いわゆる「JSライブラリ」はホストと同レベルでコンパイルされるわけでなく
なんつーか、ただのラッパーというか、なんか違う気がする

547 :Name_Not_Found:2011/06/10(金) 20:05:21.97 ID:???
>>544
>525と>535が同じ意味で使ってるなら
>525は「全てのjavascriptは時代遅れ。仕事にならない」という意味になるわけだが。

548 :Name_Not_Found:2011/06/10(金) 20:15:57.80 ID:???
>>535は昨日の流れのprototype.jsをつかえない老害というオチ

549 :Name_Not_Found:2011/06/10(金) 20:27:16.21 ID:ptNOZIC3
文字列が正しい色の値("#fff"とか"#000000"とか"blue"とか"rgb(0,0,0)"とか"rgba(255,0,0,0.5)"とか)になっているかどうか
簡単に判断する方法を教えてください

550 :Name_Not_Found:2011/06/10(金) 20:27:48.22 ID:???
>>525「生javascriptでなくライブラリ使え」
>>535「ライブラリも生javascript(で作られてる)から(生javascriptの知識がないと)非効率になる」
>>536「生とは純インターフェース(ホストオブジェクト)だけを使うプログラムである」
>>538「ライブラリをコピペすれば生です」

551 :Name_Not_Found:2011/06/10(金) 20:32:49.18 ID:???
>>549
適当な要素作ってstyle.colorに突っ込んで変更されるかチェック
またはgetComputedStyle().color

552 :549:2011/06/10(金) 20:36:39.38 ID:???
>>551
どうもありがとうございますm(_ _)m
試してみます

553 :Name_Not_Found:2011/06/10(金) 20:56:00.38 ID:???
>>550
どんだけ好意的な解釈してるんだよw
ライブラリはブラウザ依存のベタコードをできるだけ抽象化するためにある。
生コードと抽象化コードは当然別モノになるし、別モノにするためにあるんだから、
抽象化したコードで実装依存の部分を気にする必要があるなら
どこかが間違ってるだろ。

大抵の場合、抽象化コードのそもそもの仕様、あるいは前提ががおかしいだけだが。

554 :Name_Not_Found:2011/06/10(金) 21:03:55.30 ID:???
だからお前は「生コード」と「抽象化コード」を定義してから書け、な

555 :Name_Not_Found:2011/06/10(金) 21:10:28.54 ID:???
>>554
>>536

アプリ作ろうとしてる人間がブラウザの仕様を気にしなければならんのが生コード。
差が吸収されて、アプリのロジック・アルゴリズムだけ書けばいいのが抽象化コード。

ライブラリ使用者は、ライブラリ内部の動作を知っている必要があるが、気にする必要はない。
ライブラリの生産性は「気にする必要がない」ことで生まれる。
>>535は間違いだよ。ライブラリ使用の抽象化コードを
生コードと区別せず(別モノだと思わず)に、実装気にして書いてたらただのアホ。

556 :Name_Not_Found:2011/06/10(金) 21:16:31.53 ID:???
要するに、>>535と同じやん

557 :Name_Not_Found:2011/06/10(金) 21:20:34.66 ID:???
>>555
PrototypeもjQueryも、全然抽象化されてないわけだが

558 :Name_Not_Found:2011/06/10(金) 21:41:37.11 ID:???
>>555
気にする必要がないと思ってる人はおかしなコードを書くけどね

559 :Name_Not_Found:2011/06/10(金) 21:52:11.29 ID:???
>>555
「納期>>>品質」か
お世話になりたくないタイプだな

560 :Name_Not_Found:2011/06/10(金) 22:24:07.50 ID:???
>>556-559
区別ができないならできないと書けばいいのに。
むしろ黙ってりゃいいのに。

ブラウザのメジャーバージョンアップで新仕様が追加されれば
動作確認が必須。
ベタ書きしてると、ただでさえ確認作業が発生してるところに
書き換え作業&テストが発生する。
ライブラリ使ってりゃ、ライブラリ側の動作確認が済んだかどうか調べて、
動作確認だけすればおk。

これらの作業工程は単体アプリでもWebアプリでも同じこと。
「納期>品質か(キリッ」とか何をマヌケなこと言ってるんだか。
ベタ書きしてて書き換え発生したら、その分動作確認に割り当てる時間が
減るという現実を経験したことないだけだろ。

561 :Name_Not_Found:2011/06/10(金) 22:35:21.96 ID:RchKVl1l
ラジオボタンの値によってフォームのactionの値を変更したいのですが上手くいきません。
ttp://phpjavascriptroom.com/?t=js&p=sendform#a_action
こちらのサイトを参考にしてみたのですが・・・

function InputCheck(){
var frm = document.contact;
frm.action = frm.mail_to[i].value;
frm.submit();
}

<form id="input" name="contact" action="#" method="post">
<input type="radio" name="mail_to" id="1" value="frm_check1.php" />
<input type="radio" name="mail_to" id="2" value="frm_check2.php" />
<input type="submit" value="確認画面" onclick="return InputCheck()" />

スクリプト内には他に正規表現チェックもしていますがそちらは正常に機能していました。

562 :Name_Not_Found:2011/06/10(金) 22:42:54.51 ID:???
エラーメッセージはこのように表示されています。

Method Not Allowed
The requested method POST is not allowed for the URL /~xxx01xxx/lucent-tower/form.html.

もう長いことこの問題に取り組んでるのでそろそろ解決したいです・・・

563 :Name_Not_Found:2011/06/10(金) 22:45:20.52 ID:???
>>560
おまえの主張していることはブラウザの仕様を気にする必要がないであって「ライブラリ使用者は、ライブラリ内部の動作を知っている必要があるが、気にする必要はない。 」には繋がらないだろうが
頓珍漢な説明ばかりしないでオレオレ用語もやめて説明すれば突っ込みはなくなるんだよ

564 :Name_Not_Found:2011/06/10(金) 22:53:00.37 ID:???
腹筋した回数を入力して棒グラフにするプログラム作ったんだけどさ、
ttp://shirou37564.web.fc2.com/
自分が勉強のために適当に作るプログラムって難しいな。
300行以内くらいで作れるプログラムって制約でやってるんだが、
みなさん、勉強に作る適当なプログラムって何作ってます?

565 :Name_Not_Found:2011/06/10(金) 22:55:17.60 ID:???
>>564
CSVやXMLをパースする

566 :Name_Not_Found:2011/06/10(金) 22:55:24.29 ID:???
>>527
お前恥ずかしい奴だな
PHPでフレームワークを使って開発するのと生PHPで書くのを一緒だと思ってる勘違い君か

567 :Name_Not_Found:2011/06/10(金) 22:55:59.47 ID:???
基本的に作りたいものを作りながらそれに必要なものを勉強してる

568 :Name_Not_Found:2011/06/10(金) 23:06:55.33 ID:???
>>564
オセロのAIを作ってみるとか

569 :Name_Not_Found:2011/06/10(金) 23:10:59.01 ID:???
>>564
自分はオミトロンでページいじりながらhtmlとcssとjsの知識が増えていった。

そのプログラムのアドバイスしておくと、
ブラウザやPCによっては重いこともあると思うから、棒グラフはdiv1つでcssのbackgroundで作ればいいと思う。
あとは、cssで目盛り位置指定(手計算)してるけど、jsで自動計算させるとか。

570 :Name_Not_Found:2011/06/10(金) 23:16:27.86 ID:???
>>561
まずはInputCheck()の中にalert()を突っ込んで設定しようとしている
値が正しいかどうか調べる。値が正しくなければ正しくするようにする。
値が正しければ正しい値がなぜ設定されないかを次は調べる。そうやって
場合分けして行かなかったら解決しないだろ。基本中の基本。
ついでだけど、それだけ見るとiの値がどっから来るのかすごく疑問。

571 :Name_Not_Found:2011/06/10(金) 23:31:54.48 ID:Ux58BUOJ
>>564
スレとあんまり関係ないけど、
自分のための何か、とかは実験以外ではあんまり伸びない

誰かのために作った上で、あんまり面白く無いとか
使いづらいとか、バグが多いぞ糞野郎とか叩かれて、
軽くイラッとしないと

個人的にはそんな感じ

572 :564:2011/06/10(金) 23:36:25.27 ID:???
みなさんありがとうございます。
>CSVやXMLをパースする
>オセロのAI
をやってみます。
>ブラウザやPCによっては重いこともあると思うから、棒グラフはdiv1つでcssのbackgroundで作ればいいと思う。
指摘のように、このプログラムは思いので改善を考えないと
いけないのは分かってます。



573 :Name_Not_Found:2011/06/10(金) 23:41:48.39 ID:Ux58BUOJ
>>572
グラフやるんだったら
HTMLの表をCanvasでグラフに置き換える、とかやると
今っぽいかもしれんね

574 :Name_Not_Found:2011/06/10(金) 23:51:55.59 ID:i0uWjp8v
以下のような機能を実現したいです。

1.入力欄がいくつかある画面を表示
2.確認ボタン(FormのSubmit)が押された時にJavaScriptを呼び出す(action="javascript:check()")
3.呼び出されたJavaScriptで入力値をチェックし、エラーがあれば画面遷移せず、
  入力欄の右に赤字でエラー表示(innerHTMLを使用)
4.エラーがなければ確認ページへ遷移する(入力したデータを渡す)

このうち3番までは簡単にできたのですが、4番で大苦戦しております。

location.href="next.html";

とやると画面遷移はしますが、データを送れません。
どのように行えば、JavaScriptでデータを渡せるのでしょうか?

575 :Name_Not_Found:2011/06/10(金) 23:53:50.45 ID:???
formあるんだからpostすればいいじゃない。

完全にjsでやりたいなら、XMLHttpRequestとか。

576 :Name_Not_Found:2011/06/10(金) 23:55:01.61 ID:i0uWjp8v
574です。
データ渡しは、GETではなくPOSTで行いたいです。
入力内容にパスワードとか名前とかがあるためです。
アドレス欄に表示されるのはまずいです。

577 :Name_Not_Found:2011/06/10(金) 23:56:14.79 ID:i0uWjp8v
>>575
画面遷移する前に入力値のチェックを行いたいのです。
formでPOSTすれば楽なのは分かりますが、
それだとチェックせずに画面が移動してしまいます。

578 :Name_Not_Found:2011/06/10(金) 23:57:49.02 ID:i0uWjp8v
>>575
すみません、見落としていました。
Ajaxは何度か使っているので使い方は分かりますが、
あれってHTMLやJSPに対してリクエストパラメータを送ることもできるのですか?

579 :Name_Not_Found:2011/06/10(金) 23:58:18.45 ID:???
jsでpostされた時の関数の中で、チェック→エラーはreturn falseで中止。
あと、jsからでもformのpostを実行できる。

580 :Name_Not_Found:2011/06/11(土) 00:01:33.98 ID:mo3poXzS
>>579
ありがとうございます。
JavaScriptからFormのPOSTができるとは知りませんでした。
その辺りをキーにして調べてみます。m(_ _)m

581 :Name_Not_Found:2011/06/11(土) 08:23:49.34 ID:???
単なるデータ送信だろ?
submitのあとの処理を全てJavaScriptにやらせようとしてるからコケる。
JavaScriptを使わないで、普通にpostで送るように作っておいて、
そこにJavaScriptでチェック(&中止)を作って乗せる。

JavaScriptを前提にしていいなら、Ajaxで画面遷移自体が不要になるように作る。

582 :Name_Not_Found:2011/06/11(土) 09:29:32.00 ID:mo3poXzS
>>581
色々と説明不足ですみません。
3のチェック処理の中でAjaxを使うため、単純に中止はできないのです。
入力された名前をServletに送り、登録済みでないかデータベース検索をかけます。
応答が返って来たとき、未登録であれば確認画面に遷移する感じです。

>>579 のレスにあったFormのPOSTを使う処理でなんとかなりそうです。
こんな感じで書けばできそうだという認識です。

// Ajax通信完了時に呼び出される関数
function onAjaxResp( resp ) {
  if ( resp != "OK" ) {
    // 画面に「登録済み」のエラーメッセージを表示
    return;
  }

  var form = document.getElementById( "main_form" );

  form.setAttribute( "action", "kakunin.jsp" );
  form.setAttribute( "mathod", "post" );

  form.submit();
}

583 :Name_Not_Found:2011/06/11(土) 09:34:28.15 ID:???
>>561
YUI compressor使えば行数も圧縮出来る

584 :Name_Not_Found:2011/06/11(土) 13:28:15.82 ID:???
>>582
<form action="kakuninjsp" onsubmit="onSubmit(event);"> でいいんだよ。
多くの実装はハンドラ内で return しても form 送信はキャンセルされない。
event.preventDefault と event.returnValue を使い分ければいい。

585 :Name_Not_Found:2011/06/11(土) 16:44:21.84 ID:???
windowオブジェクトのプロパティやメソッドを書くときに「window.」って付けてますか?
alertとかはそのままalertと書いていてaddEventListenerはwindow.addEventListenerと書いていて
統一したほうがいいのかなと思ったのですがどっちで統一すべきですか?どっちで統一してますか?

586 :Name_Not_Found:2011/06/11(土) 16:47:50.23 ID:???
必要な時意外使わないかなぁ
onloadとかの時は使うけど

587 :Name_Not_Found:2011/06/11(土) 16:57:51.53 ID:???
どうもありがとうございます
onloadも「window.」は省略可能ですよね
統一せずなんとなくのマイルールで使い分けてる感じですか

588 :Name_Not_Found:2011/06/11(土) 17:05:08.42 ID:???
onloadはwindow省略不可

589 :Name_Not_Found:2011/06/11(土) 17:05:24.61 ID:???
オブジェクトを明示したほうがいいものにつける
obj.addEventListener
obj.onevent
このへんはwindowだけではないからな
alertやlocation.hrefなんかは
window以外に指定することはないからつけない

590 :Name_Not_Found:2011/06/11(土) 17:23:17.83 ID:???
どうもありがとうございます
window以外のオブジェクトにも同じメソッドがある場合は「window.」ってつけたほうがわかりやすいですね

591 :Name_Not_Found:2011/06/11(土) 18:08:23.34 ID:???
innerHTMLでswf objectを(何回も)書き換えるスクリプトで
あまり詳しくないので的外れな表現になっていたら申し訳ないのですが
書き換え前のobjのために用意したメモリはきちんと開放されますか?
つまり、何回も書き換えてるとメモリ食いますか?

592 :Name_Not_Found:2011/06/11(土) 20:00:31.98 ID:???
食うことがある。
IEでメモリの使用量がモリモリ増えたら確定
他のブラウザは割としっかりメモリ解放してくれるから問題になることは少ないな

593 :Name_Not_Found:2011/06/11(土) 20:56:57.46 ID:???
ttp://www.oshimaland.co.jp/
このサイトで使われている物件情報のデータ(座標)が見当たらないんですがどうやって管理してるのでしょうか?

594 :think49 ◆bKk/qcAKuM :2011/06/11(土) 21:56:28.15 ID:???
>>591
IE7- にはクロスページリークというリークパターンがあります。
http://msdn.microsoft.com/ja-jp/library/Bb250448
http://www.ibm.com/developerworks/jp/web/library/wa-sieve/#N10305


595 :think49 ◆bKk/qcAKuM :2011/06/11(土) 22:14:09.02 ID:???
>>591
Flash Player がメモリリークしているパターンもあるようですね。
http://www.google.co.jp/search?ie=UTF-8&q=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF+(Flash+|+Action-Script)


596 :Name_Not_Found:2011/06/11(土) 23:24:23.27 ID:???
formのテキストボックスにid属性を割り当ててもパラメータとして送信できないです
もしかして、name属性も指定する必要があるのですか?

597 :Name_Not_Found:2011/06/11(土) 23:31:50.10 ID:???
>>596
それはそうだろう。JavaScript関係ないが。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.4


598 :Name_Not_Found:2011/06/11(土) 23:38:28.42 ID:???
>>597
ありがとうございます
やっぱりそうなんですね
逆に言えば、送信したいやつだけname属性付けるってことで扱いやすいですね

599 :Name_Not_Found:2011/06/11(土) 23:39:36.31 ID:???
>>598
基本的に全部つけていいと思うけどね。id属性をつける意味が全くない。
送信したくないコントロールは disabled でいい。

600 :Name_Not_Found:2011/06/11(土) 23:46:11.09 ID:???
>>599
idの方がオブジェクト取りやすいです

idだと
getElementById("hoge").value
nameだと
getElementsByName("hoge").item(0).value

item(0)が面倒なんですよね

601 :Name_Not_Found:2011/06/12(日) 00:11:48.87 ID:???
forms["formName"]["hoge"].valueじゃだめなの?

602 :Name_Not_Found:2011/06/12(日) 00:26:00.09 ID:kTNOhXM6
■質問です。
ページ遷移時にフェードをかけたいのですが、
設置が比較的容易(html、CSSをあまりいじらない)な方法は
ありますでしょうか?(※IE7/8、Firefoxが対応してればOKです)

試したこと----------------------------------------------
jquery-pageswitch-plugin
http://www.fancydesign.de/lab/jquery-pageswitch-plugin/
↑ブラウザの「戻る」ボタンが使えないので却下。

よろしくおねがいします。



603 :Name_Not_Found:2011/06/12(日) 00:34:09.97 ID:???
>>598
>>597見たらわかるけど、typeがsubmit、reset以外なら、name必須だよ

604 :591:2011/06/12(日) 00:45:38.26 ID:???
>>592
>>593-594
回答ありがとうございます、メモリリークと言うんですね
内容はパッと見難しそうですが頑張って理解したいと思います

605 :Name_Not_Found:2011/06/12(日) 00:49:53.82 ID:???
安価ミス
× 593-594
○ 594-595

606 :Name_Not_Found:2011/06/12(日) 01:10:18.28 ID:???
>>600
form.elements.hoge では?
elements を変数格納しておけば各コントロールにスマートにアクセスできる

607 :Name_Not_Found:2011/06/12(日) 01:11:03.26 ID:???
>>600-601
formName.hoge.value じゃ駄目?

608 :Name_Not_Found:2011/06/12(日) 01:16:23.28 ID:???
window.forms['formname'].name.valueかな
window.formnameは非奨励

609 :Name_Not_Found:2011/06/12(日) 01:19:31.14 ID:???
document.formsの間違いね

610 :Name_Not_Found:2011/06/12(日) 01:22:57.89 ID:???
forms['formname']に対しての
nameがすごく気持ち悪い

611 :Name_Not_Found:2011/06/12(日) 01:59:21.98 ID:???
質問させていただきます。

var a = new Array( 10, 22, 1, 23, 45);
のような配列がありこれをソートしたいのですが、配列の値とキーの値を関連付けているため、配列のsortメソッドを使うと値のみソートされてしまうため、
キーと合わせてソートしたい場合はどうすればいいか悩んでおります。

a[2] => 1
a[0] => 10
a[1] => 22
a[3] => 23
a[4] => 45

このような出力をしたのですが、どうすればいいでしょうか?

612 :Name_Not_Found:2011/06/12(日) 02:26:17.22 ID:???
>>608
document.formnameが非奨励 なら form.name も非推奨かと

613 :Name_Not_Found:2011/06/12(日) 02:31:15.21 ID:???
>>611
どういう結果を求めてるの?
sortにコールバックを渡すだけでいけそうだけど

614 :Name_Not_Found:2011/06/12(日) 02:53:00.24 ID:???
>>611
それだとソートの意味をなしてないな。
単純に値を出力したいだけなら、配列をコピーしてソートしたらどうだ。

615 :Name_Not_Found:2011/06/12(日) 02:58:26.57 ID:???
>>611
再現できないんだが…
キーを揃えるのがsortじゃないか

616 :Name_Not_Found:2011/06/12(日) 03:05:23.66 ID:???
このような出力をした「い」のですが、のtypo?
文意が180度変わる

617 :611:2011/06/12(日) 04:03:03.88 ID:???
>>616さんのいうとおり、「出力したい」です。

とりあえず、連想配列で二つの値を持たせて自前の関数で連想配列をソートさせました。
Javascriptでは連想配列に持たせる以外に、>>611を実現する方法はありますでしょうか?

618 :Name_Not_Found:2011/06/12(日) 04:49:00.85 ID:???
>>617
ソート後のインデックスの配列を作る

619 :Name_Not_Found:2011/06/12(日) 05:56:05.34 ID:???
jQueryの質問です
slideupの動作を終えてからcompleteのように関数を実行したいのですが
animateではなくslideupの時はどうすればできるんでしょうか?

620 :Name_Not_Found:2011/06/12(日) 07:43:27.65 ID:h9PMtxBj
>>619
jQuery使ったことないけど、↓見る限りだと第二引数に関数おけばいいんじゃね?
ソース眺めてるだけだから、嘘だったらすまん。


>// Generate shortcuts for custom animations
>jQuery.each({
> slideDown: genFx("show", 1),
> slideUp: genFx("hide", 1),
> slideToggle: genFx("toggle", 1),
> fadeIn: { opacity: "show" },
> fadeOut: { opacity: "hide" }
>}, function( name, props ) {
> jQuery.fn[ name ] = function( speed, callback ) {
> return this.animate( props, speed, callback );
> };
>});


621 :Name_Not_Found:2011/06/12(日) 07:51:40.35 ID:???
>>620
なるほどありがとうございます!

622 :Name_Not_Found:2011/06/12(日) 08:30:54.38 ID:???
>>617
2次元配列とか連想配列にするしか無いような気がする。 
自力でforで回して最小のを探し出して出力していくってのも効率よくすればsortと同じだと思うし。
var a = new Array( 10, 22, 1, 23, 45);
for (var i = 0, len = a.length; i < len; i++) a[i] = [a[i], i];
a.sort(function(n1, n2){
return n1[0] - n2[0];
});
for (var i = 0, len = a.length; i < len; i++) console.log("a[" + a[i][1] + "] => " + a[i][0]);

623 :Name_Not_Found:2011/06/12(日) 08:59:01.29 ID:h9PMtxBj
>>617

IE6とかECMAScript互換性無視のブラウザ使わないなら↓になる。


var s = "";
var a = [10, 22, 1, 23, 45];
a.map(function(v,i,array){
return {index:i,value:v}
}).sort(function(l,r){
return l.index-r.index;
}).forEach(function(v,i,array){
s += 'a['+v.index+'] => ' + v.value '\n';
});
alert(s);


ここでArray.mapとArray.forEachの実装拾ってくれば、互換性クリアできる。
https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array
https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/map
https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/forEach




624 :Name_Not_Found:2011/06/12(日) 09:12:31.10 ID:???
forEachってfor文でいいじゃん
って思ってたけどそういう書き方ができるんすね

625 :Name_Not_Found:2011/06/12(日) 10:10:02.67 ID:???
>>593おねがいします

626 :Name_Not_Found:2011/06/12(日) 11:29:24.94 ID:h9PMtxBj
>>593
ajaxでデータ取ってきてるんじゃね?
取得方法はhttpヘッダでも監視するしかないんじゃね?
まぁ、他人のサイトに無用に負荷かけるなよ。

627 :Name_Not_Found:2011/06/12(日) 11:42:38.37 ID:???
ajaxで取ってくるそのファイルが見つかりません

628 :Name_Not_Found:2011/06/12(日) 12:12:45.33 ID:???
Firebug のコンソールを開いてみ。必要なものは大方確認できるはず。

629 :Name_Not_Found:2011/06/12(日) 13:36:06.38 ID:???
/c/数字
でjsonが帰ってきてる。
chromeはいつの間にかxmlloadingが表示されなくなったよね。

630 :Name_Not_Found:2011/06/12(日) 14:02:48.03 ID:???
>>629
xmlloadingが何を指すのかわからんが
XHRはコンソールで右クリックしてXMLHttpRequest loggingにチェック入れたら
通信ごとにコンソールに表示されるし
通信内容もNetworkタブから見れるよ?ヘッダとか全て含めて

631 :Name_Not_Found:2011/06/12(日) 14:13:06.45 ID:???
>>629
/c/数字 って何のこと?


632 :Name_Not_Found:2011/06/12(日) 14:24:40.01 ID:???
>>630
お、ホントだ、右クリックメニューに何かあるなーと思いつつ今まで無視してたわw
サンクス。 XHR finished loadingだった。
>>593のデータの場所。

633 :Name_Not_Found:2011/06/12(日) 16:28:56.20 ID:???
よく個人情報入力後に確認の画面が表示されますが
入力画面に戻るための修正ボタンはどうやれば作れますか?
history.back()を呼び出すだけだと内容消えちゃいますよね?
パスワードとか特に

634 :Name_Not_Found:2011/06/12(日) 17:00:56.35 ID:???
戻ると考えずに 再編集画面に進む と考えればいいだけだろ?

635 :Name_Not_Found:2011/06/12(日) 17:19:08.21 ID:???
>>634
なるほど
確認の画面が隠し持っている値を編集画面に送る訳ですね?

636 :Name_Not_Found:2011/06/12(日) 17:46:20.89 ID:???
var Foo = function(){
this.Baz = function(){
...
}
}
var Hoge = function(){
this.Foo = new Foo();
this.Start = function(){
setInterval( "this.Foo.Baz()", 500 );
};
}

FooクラスのBazメソッドをHogeクラスのStartメソッドからインターバルで呼び出したいのですが、Firebugに"this.Foo is undefined"と言われてしまいます。
どの様にすれば実行できるでしょうか?

637 :Name_Not_Found:2011/06/12(日) 18:06:53.99 ID:???
>>636
var Hoge = function(){
 this.Foo = new Foo();
 var baz = this.Foo.Baz;
 this.Start = function(){
  setInterval(baz, 500 );
 };
}

638 :Name_Not_Found:2011/06/12(日) 18:10:01.23 ID:???
>>636
http://fiddle.jshell.net/vSqKr/24/show/#Q14

639 :Name_Not_Found:2011/06/12(日) 20:52:43.43 ID:???
>>634
ありがとうございました
POSTパラメータに乗せることでできました

640 :Name_Not_Found:2011/06/13(月) 07:48:19.49 ID:???
JSでPOSTのパラメータ取るにはどうすればいいですか?

641 :Name_Not_Found:2011/06/13(月) 08:51:29.19 ID:???
Ajaxではなく、innerHTMLでsrcの部分のHTMLを読み込んで
その後にとある一文を実行させたいのですが、どのようにしたらいいのでしょうか?

642 :Name_Not_Found:2011/06/13(月) 09:09:07.62 ID:???
2人とももうちょっとわかりやすくおね。

643 :Name_Not_Found:2011/06/13(月) 11:21:53.81 ID:nGlFUN44
>>640
POSTってのはサーバ側のもんだから

>>641
srcの部分のHTML、ってなんだ?


644 :Name_Not_Found:2011/06/13(月) 15:27:16.88 ID:???
YUI compressorを使ってjsやcssのシェイプアップするようにHTMLの不要な空白や改行、コメントをシェイプアップするツールって知らない?

645 :Name_Not_Found:2011/06/13(月) 15:42:54.80 ID:???
CSSはYUI compressorでできるだろw

646 :Name_Not_Found:2011/06/13(月) 15:47:43.43 ID:???
>>644
正規表現で改行と空白と<!--から-->までを削除すればおk

647 :Name_Not_Found:2011/06/13(月) 15:48:22.00 ID:???
HTML用のツールについて
なぜここで聞く

648 :Name_Not_Found:2011/06/13(月) 20:36:57.86 ID:???
バックグラウンドのタブとか、ウィンドウがアクティブになっていないときでもJavascriptは処理されているんですか?
ウィンドウがアクティブになっていないときには処理しなくてもいいようなsetInterval等がある場合は
止めておくものですか?もしそうだとしたら、止め方、再開の仕方を教えてください
window.onfocusとwindow.onblurで?

649 :Name_Not_Found:2011/06/13(月) 20:40:17.10 ID:???
そう、onfocusとonblurで普通だと思うけど。

650 :648:2011/06/13(月) 20:47:15.51 ID:???
どうもありがとうございますm(_ _)m

651 :Name_Not_Found:2011/06/13(月) 20:57:55.14 ID:???
>>644
Whitespace onlyでやれば同じことが出来る
http://closure-compiler.appspot.com/home

652 :Name_Not_Found:2011/06/13(月) 21:25:10.60 ID:???
URLエンコードについて教えてください。
JSからサーブレットにUTF-8の日本語文字列を送りたいです。
escape(・・・)関数でエンコードして送ったところ、なぜがパラメータを取得できませんでした。
エスケープ直後の文字列を表示してみたところ、%uXXXX(XXXXは16進文字列4桁) となっていました。
つまり、JS側での変換はうまくできている筈なのです。
しかし、それをサーブレットでreq.getParameter(・・・)を行った結果はnullになるのです。
なぜこのようになるのか、ご存じないですか?

653 :Name_Not_Found:2011/06/13(月) 21:52:57.35 ID:???
アニキぼすけて
selectでいうselectedIndexみたいなのをラジオボックスで使えませんか?
checkedでbool拾うしかないですかね?

654 :Name_Not_Found:2011/06/13(月) 22:07:14.56 ID:nGlFUN44
>>652
encodeURIでもだめかね

655 :Name_Not_Found:2011/06/13(月) 22:16:09.92 ID:nGlFUN44
>>653
input[type=checked][name=hoge]:checked

でチェックされてる要素はとれるだろうから
それでゴニョゴニョすれば

656 :Name_Not_Found:2011/06/13(月) 22:18:27.09 ID:5y0uOpHU
>>654
おおっ!日本語を取得できました!素晴らしいです!
ありがとうございます!

ところで、自分のやり方が悪いのか知りませんが、半角イコール記号がエスケープされません。
これだとパラメータ的として致命的な欠陥になりそうですね。
これは自前でエスケープするべきでしょうか?

657 :Name_Not_Found:2011/06/13(月) 22:22:11.97 ID:???
>>656
encodeURIComponentは?

658 :Name_Not_Found:2011/06/13(月) 22:25:31.40 ID:nGlFUN44
>>656
encodeURIComponent

659 :Name_Not_Found:2011/06/13(月) 22:25:42.10 ID:nGlFUN44
ああかぶったごめんなさい

660 :Name_Not_Found:2011/06/13(月) 22:31:57.87 ID:zFDNhwB+
クリックで画像を入れ替える方法は検索ですぐ発見できましたが、
gifアニメをクリックで入れ替える方法はありますでしょうか?

画像を入れ替える方法で単にjpg画像をgif動画に変えただけでは無理でした。
よろしくお願いします。

661 :Name_Not_Found:2011/06/13(月) 22:32:17.27 ID:5y0uOpHU
>>657-658
こ、こいつはすごい関数ですね!
探し求めていた関数ですよ!
ありがとうございます!

662 :Name_Not_Found:2011/06/13(月) 22:44:26.51 ID:???
IE、firefoxだと
document.getElementById("hoge").contentWindow.document.getElementById('fuge')
でインラインフレーム(hoge)の(fuge)を取得できるんですが
クロームだと上手くいきません

document.getElementById("hoge").contentWindow.documentでundefinedとなるのですが

663 :Name_Not_Found:2011/06/13(月) 22:50:41.46 ID:???
contentDocument

664 :Name_Not_Found:2011/06/13(月) 22:56:00.70 ID:???
>>663
document.getElementById("hoge").contentDocument
でもundefinedでした
ちなみにバージョンは12.0です

665 :Name_Not_Found:2011/06/13(月) 23:16:00.56 ID:PICTJC8/

>>602

をお願いします


666 :640:2011/06/13(月) 23:16:12.10 ID:???
>>643
ありがとうございます
ということは、やはりCGIとかJSPとかを組まないと駄目なのですね
難しそうですが勉強します

667 :Name_Not_Found:2011/06/13(月) 23:25:33.70 ID:???
>>640
それPOSTを有効活用できてないぞ。自分でPOSTするページも作ったんでしょ?目的があるはず。
情報を次のページへ渡したいなら、urlに〜?a=1&b=2とかでクエリいれるか、
CookieとかlocalStorage使えばいいと思うよ。

668 :Name_Not_Found:2011/06/13(月) 23:28:57.15 ID:nGlFUN44
>>665
何がわからないのかをまず書け

669 :Name_Not_Found:2011/06/13(月) 23:30:24.46 ID:???
>>668
作っていただきたいと思ってます

670 :Name_Not_Found:2011/06/13(月) 23:32:36.85 ID:nGlFUN44
>>1の一行目も読め

671 :Name_Not_Found:2011/06/14(火) 01:09:31.53 ID:???
>>664
ローカルファイル(file:///〜)だと別ドメイン扱いになるくさい。
起動オプション --allow-file-access-from-files 付けて開けばおけぃさ。

672 :Name_Not_Found:2011/06/14(火) 01:12:58.48 ID:???
関係ないけどchromeってやたらローカル仕様が異なる場合が多いんだけどなぜ?
別用途の目的でもあるの?

673 :Name_Not_Found:2011/06/14(火) 01:32:53.11 ID:???
【環境】
 Windows 7 SP1 64bit、Firefox3.6.17
【何をしたのか】
 -
【エラーメッセージ】
 -
【期待する結果】
 <input type="text">にフォーカスが移った時に、右クリックメニューを表示したい。
 右クリックメニューはブラウザ標準のメニューです。(コピー・貼り付け等)
【サンプルコード】
 <input type="text" value="TEST" align="right" readonly onfocus="this.select()">

あと、【期待する結果】に書いた内容とは別に、Firefox3.6.17でJavascriptのみを使って
文字列をクリップボードにコピーをする方法があれば知りたいです。
※下記のようなFlashとの組み合わせでなく。
 labs.unoh.net/2009/01/javascript_flash10.html

よろしくお願いします。

674 :Name_Not_Found:2011/06/14(火) 02:16:59.85 ID:xayMKQEi
むり

675 :Name_Not_Found:2011/06/14(火) 05:22:45.44 ID:???
refererを付けずにリンクを開く方法ってありますか?


676 :Name_Not_Found:2011/06/14(火) 06:43:17.23 ID:???
dataurlの中でlocation.href =URLとかやればできそう

677 :Name_Not_Found:2011/06/14(火) 08:17:51.38 ID:???
>>662
Apache インストールするのが確実
GC でなくても file:/// は挙動が違う

678 :Name_Not_Found:2011/06/14(火) 08:39:53.25 ID:???
Garbage Collection

679 :Name_Not_Found:2011/06/14(火) 11:50:24.18 ID:5DboEh0C
ラジオボタンの選択により各パーツがアクディブ/非アクティブになるように
したいのですが、セレクトとテキストエリアが上手くいきません。よろしくお願いします


ttps://sites.google.com/site/asaendo/
(ソースのみ)


680 :679:2011/06/14(火) 12:05:51.43 ID:7H9XEaUF


自己解決しました。
スレを汚してスミマセン(恐縮



× changeDisabled(this.form,['test1'], ['test2','test3'])">例1

○ changeDisabled(this.form,['test1'], ['test2','test3','test4','test5'])">例1

681 :677:2011/06/14(火) 12:36:06.50 ID:???
Google Chrome

682 :Name_Not_Found:2011/06/14(火) 12:39:52.37 ID:???
>>671>>677
ありがとうございます!
クライアント側でもローカルとかそーじゃないかで結構変わってくるんですね
ヘンな先入観もってました、助かりましたちゃんとなりましたー

683 :Name_Not_Found:2011/06/14(火) 17:35:05.20 ID:BbAXg++Z
contenteditable をつかったときキャレット位置を得ることは出来ますか?
できないのかなあー

684 :Name_Not_Found:2011/06/14(火) 18:10:17.30 ID:jdIpOn/g
Thickboxについて質問があります。
リンクで別URLに遷移と同時にすぐにThickboxのウィンドを表示させたいのですがどのようにすればよいでしょうか?

685 :Name_Not_Found:2011/06/14(火) 18:54:55.05 ID:xayMKQEi
Thickboxに、ボックスを開くメソッドがあるだろうから
それを発火させれば

686 :684:2011/06/14(火) 19:30:04.74 ID:???
>>685
そっか! サンキューです

687 :Name_Not_Found:2011/06/14(火) 20:42:58.78 ID:???
ttp://www.scriptiny.com/2008/05/horizontal-javascript-accordion-menu/
ページ上部に二つのアコーディオンメニューが並んでいますが、ページを開いた際、
・上のは一番左の「One」エリアが伸びた状態
・下は4つのエリアが均等に振られた状態
となっています。

ここのソースを元にアレンジしてメニューを作ってみましたが、下の状態にしたいの
に巧く行きません。(上の様になってしまいます。)
どこを修正すれば4エリア均等の状態で立ち上がるようになるでしょうか。

688 :Name_Not_Found:2011/06/14(火) 22:10:57.40 ID:???
Ajaxについて教えてください
application/octet-stream形式のレスポンス(ファイル)を受けとりたいのですが、
どうやれば実現できますか?

689 :Name_Not_Found:2011/06/14(火) 22:38:53.93 ID:???
>>687
// slidemenu.js
if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}

sl(buildの第5引数)の値で特定要素のスタイルが変更される。

slideMenu.build('sm',200,10,10,null)

引数をnull(無し)にすりゃいい。

690 :673:2011/06/14(火) 22:44:34.18 ID:???
>>674
分かりました。
ありがとうございました。

691 :Name_Not_Found:2011/06/14(火) 23:15:42.63 ID:???
javascript:window.open("");location.replace("http://www.yahoo.co.jp/");
新しいタブを開いてそこに指定したアドレスに飛びたいのですが
新しいタブを開区と頃まではいけましたが飛べません
アドバイスお願いいたします

692 :Name_Not_Found:2011/06/14(火) 23:17:02.85 ID:???
ごめんなさい自己解決しました

693 :Name_Not_Found:2011/06/14(火) 23:17:33.57 ID:???
window オブジェクトがもとのページを見てるよ

694 :Name_Not_Found:2011/06/14(火) 23:31:01.64 ID:???
186 Name_Not_Found sage 2011/06/02(木) 15:52:40.14 ID:???
自己解決したコード貼ってきなよ

187 Name_Not_Found sage 2011/06/02(木) 16:04:56.12 ID:???
いやです

188 Name_Not_Found sage 2011/06/02(木) 16:17:41.88 ID:???
つまり自分で試して分かったからここに書く必要ないって事ですね

189 Name_Not_Found sage 2011/06/02(木) 17:12:00.26 ID:???
教えてもらうのはいいけど
教えてあげるのは嫌やでぇーという事ですね


695 :Name_Not_Found:2011/06/15(水) 00:05:22.93 ID:???
上から目線な煽り屋がいれば自己解決してもここにコードなんて書いてく気にならんだろう

696 :Name_Not_Found:2011/06/15(水) 01:00:23.17 ID:???
いちいち絡んでくる奴がいるから「自己解決しました」じゃなくて「質問を取り下げます」とレスしといたほうが無難だね

697 :Name_Not_Found:2011/06/15(水) 05:54:10.84 ID:???
>>675-676
これ興味あります!
どうやるんですか?

698 :Name_Not_Found:2011/06/15(水) 06:17:13.64 ID:???
クッキーにデータを追加保存したいのですが
document.cookie = string1;
を保存して、次実行したらは
document.cookie = string2;
を追加、という風にしたいのですが如何せん上手くいきません

やっぱりクッキーを読み込んでstring1を呼び出し
document.cookie =string1 + string2;
とやるしかないのでしょうか?

699 :Name_Not_Found:2011/06/15(水) 07:12:55.37 ID:???
>>689
遅くなりましたが、ご丁寧にありがとうございました!!

700 :Name_Not_Found:2011/06/15(水) 07:59:10.46 ID:???
>>698
当り前でしょ。あなたの「望んでいる」方式を採用した場合、
「既にあるデータを書き換えたい」ときはどうするわけ?

701 :Name_Not_Found:2011/06/15(水) 08:17:33.71 ID:???
>>700
document.cookie +=string2
みたいな感じでできるのかなーと

702 :Name_Not_Found:2011/06/15(水) 09:17:19.84 ID:???
>>698
stringを略さないで中身書いてくれないと・・・
書き方が間違ってるんじゃないの?
document.cookie="a=1";
document.cookie="b=2";
alert(document.cookie);
document.cookie="a=3";
document.cookie="c=4;expires=Wed, 15-Jun-2011 10:00:00 GMT+9";
alert(document.cookie);
cの有効期限は今日の10時まで
他はブラウザ閉じたら無効になるセッションクッキー

703 :Name_Not_Found:2011/06/15(水) 09:29:52.24 ID:???
質問です。
イベントハンドラの登録において、addEventListenerを使う方法とonを使う方法がありますが、
キャプチャをしない&2つ以上登録しないことがわかっている場合はどちらを使っても同じでしょうか?

なるべく癖としてaddEventListenerを使うようにはしているのですが、
img.onloadなどでついそちらを使ってしまうことが多いので質問しました。

704 :Name_Not_Found:2011/06/15(水) 10:43:29.04 ID:???
なるほど、有効期限はやってますー
それと追加質問なんですが
a.htmlで保存したクッキーをb.htmlで取得する方法あります?
1日に2回も質問してしまってすみません

705 :Name_Not_Found:2011/06/15(水) 15:44:41.57 ID:kneo6M8L
>>703
eventをハンドリングできるかどうか、とか

706 :Name_Not_Found:2011/06/15(水) 15:45:33.68 ID:kneo6M8L
>>704
普通にdocument.cookieを見ればいい
もともとそういう用途のためのものと言っても過言ではない気がする

707 :Name_Not_Found:2011/06/15(水) 18:40:25.64 ID:???
>>706
ありがとうございます!
凄いですねjavascriptは、何でも出来る気がしてきます

708 :Name_Not_Found:2011/06/15(水) 20:53:55.73 ID:???
ページが呼ばれたとき、要求がGETかPOSTかをjavascriptで判断することはできますか?

709 :Name_Not_Found:2011/06/15(水) 21:01:49.55 ID:kneo6M8L
>>708
JavaScriptは呼ぶ側にいるのです

710 :Name_Not_Found:2011/06/15(水) 21:05:50.11 ID:n4fyKVeo
>>709
つまり、不可能なのですね。
ありがとうございました。

711 :Name_Not_Found:2011/06/15(水) 22:31:51.97 ID:???
>>707
javascriptで北朝鮮と韓国と中国を潰してください

712 :Name_Not_Found:2011/06/15(水) 22:56:59.71 ID:???
>>710
うるさいこと言うけど不可能なんじゃなくて無関係なんだよ
GETやPOSTを受け取るのはサーバサイド
JSが実行されるのはクライアントサイドだからね

713 :Name_Not_Found:2011/06/16(木) 01:12:15.01 ID:???
>>712
了解しました。
確かに、クライアントが受け取る訳じゃないですね。
判断するのはサーバアプリですね。

714 :Name_Not_Found:2011/06/16(木) 03:16:26.91 ID:???
array[1]〜array[100]を
test1〜test100っていう変数に入れたいんですけどどうしたらいいでしょう?
for(i=1; i<=100; i++){
testi = array[1];
}
じゃtestiっていう変数に入るだけで無理でした

715 :Name_Not_Found:2011/06/16(木) 04:14:28.39 ID:???
>>714
FAQのQ7A7と思ったらなんだよこれ
テンプレと本スレと別サイトとでQナンバーかぶってんじゃん
これ作ったアホは書き直せよ
だから別サイトは嫌なんだよ

716 :Name_Not_Found:2011/06/16(木) 06:53:37.29 ID:???
同じもの載せる必要はないよね、載せるなら分ける必要ないだろ

717 :Name_Not_Found:2011/06/16(木) 07:27:17.79 ID:???
>>715
元々はあの数だったのを今の数に減らしてからNoが合わなくなってる
テンプレを飛ばしNoにするのは合理的ではないから今のままでいいと思うけど

718 :Name_Not_Found:2011/06/16(木) 08:06:43.34 ID:???
HPから引用してるなら統一しろや

719 :Name_Not_Found:2011/06/16(木) 08:37:14.52 ID:???
ヒューレットパッカード?

720 :Name_Not_Found:2011/06/16(木) 08:41:07.53 ID:???
>>714
変数何かいらないよ
for(i=1; i<=100; i++){
array[i]="test"+i;
}

721 :Name_Not_Found:2011/06/16(木) 09:29:56.15 ID:???
>>714

変数100個も使う時点で既におかしい。素直に配列使う設計に直せ。

722 :Name_Not_Found:2011/06/16(木) 09:56:48.50 ID:???
javascriptでwavファイルを鳴らしたいんですが
鳴らすときにwavファイルにアクセスするのではなくて
ページを表示したときにwavファイルを読み込ませておく方法ってありませんか?

723 :Name_Not_Found:2011/06/16(木) 11:17:02.67 ID:QKx/TX46
【環境】IE9
【期待する結果】
jQueryを使って特定hogeの配下にあるfugaを取得したいです。
var hogeList = $('.hoge'); と、hogeのオブジェクト一覧がhogeListにある前提です。
「どこかのhoge」配下のfugaなら$('.hoge .fuga')でもよさそうですが、「特定のhoge」配下のfugaを取得したいです。
直接DOM使って冗長なコード書いても問題なくfugaが取得できそうですが、
jQueryならではの何かショートカットはないでしょうか?

【サンプルコード】
<div class="hoge">
  :
 <piyo>
  <h2 class="fuga" />
 </piyo>
</div>
<div class="hoge">
  :
 <h2 class="fuga" />
</div>
(以下略)

よろしくお願いします。

724 :Name_Not_Found:2011/06/16(木) 11:25:48.57 ID:???
何でjavascript1.5で止まってるんですか?
1.6とか2.xとかどんどんバージョンアップされていますよね?
何で最新の5大ブラウザ全てが対応してないのですか?

725 :Name_Not_Found:2011/06/16(木) 11:40:51.53 ID:???
>>723
CSSセレクタを勉強するんだ
.hoge > .fuga

726 :Name_Not_Found:2011/06/16(木) 12:04:13.34 ID:QKx/TX46
>>723 自己レス。
$(hogeList[n]).find('h2.fuga')でいけました。

727 :Name_Not_Found:2011/06/16(木) 12:30:49.37 ID:???
>>726
ttp://api.jquery.com/eq-selector/

728 :Name_Not_Found:2011/06/16(木) 12:36:15.09 ID:???
>>725
日本語を勉強するんだ

729 :Name_Not_Found:2011/06/16(木) 13:02:44.58 ID:???
配列 = splitとか使うとき
配列をnew Array();で宣言する必要ないと思うんですが、する場合としない場合があるのはなぜなんでしょうか?
もしかして配列をvar 配列と宣言しなおしたりnew Array()と宣言すると空っぽになったりするんでしょうか?

730 :Name_Not_Found:2011/06/16(木) 13:15:27.57 ID:8YKi/605
質問です

フォームを利用したWebアプリケーションを作成しています。
以下のフォームで、削除をクリックした時に、remove() より、submit を実行します。

ボタンをクリックする場合には、望んだ通りの挙動になります。
しかし、idを入力するテキストボックスでEnterを押した場合には、 remove() を通さず submit のような挙動になってしまいます。
Enterで飛ばないようにするには、非表示のテキストボックスを追加で配置すればよいようなのですが、
逆に、Enterを押した時に remove() を実行させるようにする方法が分からず困っております。

解決法をご存じでしたら教えてください。(なるべくブラウザを問わない方法でお願いします)

remove() {
// input name="name" に、 valueを設定
// こちらからsubmitを実行();
}

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


731 :Name_Not_Found:2011/06/16(木) 13:22:57.31 ID:???
>>720>>721
こういう時に配列を使うのですか、あざっす

732 :Name_Not_Found:2011/06/16(木) 13:25:27.59 ID:???
>>729
var arr = new Array(); arr = str.split(""); ってことか?
var arr = str.split(""); と同じ。
先に何が入ってようが、代入した時点でそれは上書きされるんだから関係ない。

733 :Name_Not_Found:2011/06/16(木) 13:29:10.78 ID:???
>>730
<input type="text">でEnterすればsubmit()が呼ばれるんだから、
submit()の中でremove()を呼べばおk

いまsubmit()の中で処理しているものを、別の場所から単体で呼ぶ必要があるなら、
その処理を丸ごと別の関数にしておいて、それをsubmit()から呼べばおk

734 :Name_Not_Found:2011/06/16(木) 13:29:24.34 ID:???
>>732
そうです。御免なさいです説明不足でした
勉強になりました

735 :Name_Not_Found:2011/06/16(木) 13:31:12.85 ID:???
>>730
formにonsubmit
buttonのtypeをsubmit

736 :Name_Not_Found:2011/06/16(木) 13:49:15.62 ID:???
>>729
極局所的に使われる一時変数は別だけど、重要な変数はデータ型をあらかじめ明示しとく。

var arr = []; // コメント

行頭にでもまとめて注意を促せば、単純な名前でも上書きするミスが減るし、可読性も良くなるわな。

737 :Name_Not_Found:2011/06/16(木) 14:01:56.88 ID:???
>>736
本だけの知識でしたが本当に勉強になります。感謝の極みです
データ型なんてPHPのMySQLぐらいでしか注意してませんでした。javascriptでもミスが出たりするんですね

738 :Name_Not_Found:2011/06/16(木) 16:08:14.77 ID:???
質問です

誰でも入力可能なテキストエリアの値をinnerHTMLでそのまま表示すると危険と言われたのですが本当ですか?
スクリプト実行されてハッキングされ放題なんでしょうか?

739 :Name_Not_Found:2011/06/16(木) 16:19:30.93 ID:???
そいつが入力した値をそいつのブラウザだけで表示するなら問題ないよ
他の人のブラウザで表示するなら問題


740 :Name_Not_Found:2011/06/16(木) 16:23:14.60 ID:???
>>738
「クロスサイトリクエストフォージェリ」で検索して勉強すれ。
読んでも理解できないなら、そういう仕事をしてはいけない。

741 :Name_Not_Found:2011/06/16(木) 16:24:14.85 ID:???
Oh...了解です

742 :Name_Not_Found:2011/06/16(木) 16:31:57.49 ID:mr/Ai4o/
クロスサイトリクエストフォージェリって
想定しないリクエストを受け付けちゃう、って問題じゃないの?
はまちちゃんのアレみたいな

743 :Name_Not_Found:2011/06/16(木) 16:34:48.77 ID:???
まぁサーバー側は問題ないから安全っちゃあ安全だろ
クッキーをイジられてINNERHTMLしちゃってもクライアント側が痛い目見るだけやし

744 :Name_Not_Found:2011/06/16(木) 16:54:03.53 ID:???
ウイルス作成罪でサーバ没収されるかも
純粋なウイルスじゃなくても適用範囲は広いから・・・

745 :Name_Not_Found:2011/06/16(木) 17:21:49.22 ID:???
政治家ってウイルスが特別な個体とか思ってるんだろ

746 :Name_Not_Found:2011/06/16(木) 18:43:08.47 ID:???
はまちちゃん逮捕されないの?

747 :Name_Not_Found:2011/06/16(木) 19:17:59.05 ID:???
クロスサイトスクリプティングの方だな。

まあ要するに、自分の設置したサイトに穴があると、
悪意ある他人がその穴に好き勝手なプログラム仕込んで別の第三者にアクセスさせることで
誘導された第三者がそのプログラムを実行してしまい、被害を受けるだろうってこと。

直接表示、eval、Functionコンストラクタ、その他いろいろ穴を作る可能性のあるものがある。
プログラムを作る時の前提は、他から取り込んだデータは
絶対に信用できるレベルまで洗うこと。洗わず使ったり表示したりはダメ。

748 :Name_Not_Found:2011/06/16(木) 19:32:33.92 ID:???
evalは前から気をつけろって言われてたけど直接表示についてだけどさ
クッキーとかを表示するときdocument.writeもinnerHTMLも変わらないと思うんだよね
セキュリティ面に関してだけど

749 :Name_Not_Found:2011/06/16(木) 19:40:14.58 ID:???
閲覧者が入力したデータをinnerHTMLで表示しても
閲覧者自身が自分の行為の結果を受けるだけじゃないんですか?

750 :Name_Not_Found:2011/06/16(木) 19:59:05.58 ID:???
evalもwriteもinner*も用途がわからん

751 :Name_Not_Found:2011/06/16(木) 20:43:05.37 ID:???
evalの話題は荒れるからやめようぜ

752 :Name_Not_Found:2011/06/16(木) 21:08:30.83 ID:???
eval 使えば >>714 も簡単にできる


753 :Name_Not_Found:2011/06/16(木) 21:16:13.77 ID:???
>>714を使う理由がない

754 :Name_Not_Found:2011/06/16(木) 21:29:50.52 ID:???
evalはお遊びにしか使えないな

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

756 :Name_Not_Found:2011/06/16(木) 22:23:34.75 ID:???
<script>
a = 1;

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

aにvarをつけたほうがいいですか?

757 :Name_Not_Found:2011/06/16(木) 22:31:59.93 ID:mr/Ai4o/
varって書く意味がわかってるなら別にどちらでも。
よくわからないなら書いた方が。

758 :Name_Not_Found:2011/06/16(木) 22:44:21.54 ID:???
type付けよう

759 :Name_Not_Found:2011/06/16(木) 22:51:16.19 ID:???
>>755
eval 使う必要ないような

760 :Name_Not_Found:2011/06/16(木) 23:12:15.24 ID:???
クロスサイトスクリプティング対策として、以下のような関数を作成しました。

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_Found:2011/06/16(木) 23:15:09.09 ID:???
すみません。
ここも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_Found:2011/06/16(木) 23:26:35.24 ID:???
>>760
5つの文字だけしかやらないんならXSS対策になりませんよ

763 :Name_Not_Found:2011/06/16(木) 23:33:16.37 ID:???
>>762
他にどんな文字があるのですか?

764 :Name_Not_Found:2011/06/17(金) 00:00:14.50 ID:???
サロゲートペアとかブラウザの実装はどうなんだろう、正規化されるのかな
まあテキストとして扱うなら普通はtextContentなりdocument.createTextNodeで

765 :Name_Not_Found:2011/06/17(金) 00:05:25.04 ID:???
>>763
\0

766 :Name_Not_Found:2011/06/17(金) 00:08:10.09 ID:???
>>763
\0を空に置換する

767 :Name_Not_Found:2011/06/17(金) 00:08:13.17 ID:???
>>765
ヌル文字をエスケープするのですか?
どんな文字に置換するのか想像もつかないですね。

str = str.replace( /\0/g, "" );

768 :Name_Not_Found:2011/06/17(金) 00:08:34.76 ID:???
ちなみに\の置換で\0は消せないのでよろしく

769 :Name_Not_Found:2011/06/17(金) 00:09:35.00 ID:???
>>765-766
ありがとうございました。
ヌル文字の置換も行うようにします。
合計6種類の文字の置換ですね。

770 :Name_Not_Found:2011/06/17(金) 00:11:23.93 ID:???
http://www.google.co.jp/search?hl=ja&q=%E3%83%8C%E3%83%AB%E3%83%90%E3%82%A4%E3%83%88%E6%94%BB%E6%92%83+javascript&aq=f&aqi=&aql=&oq=

771 :Name_Not_Found:2011/06/17(金) 00:12:35.65 ID:???
俺みたいなカス初心者には参考になるな

772 :Name_Not_Found:2011/06/17(金) 00:12:55.57 ID:???
>>768,>>770
ありがとうございます。
ヌルバイト攻撃は知りませんでした。
勉強します。

773 :Name_Not_Found:2011/06/17(金) 00:21:42.07 ID:???
おいサロゲートペア無視するなよww


774 :Name_Not_Found:2011/06/17(金) 00:29:38.89 ID:???
自己レス、サロゲートペアはブラウザで処理する限りは大丈夫らしい、
ttp://webos-goodies.jp/archives/51072404.html

775 :Name_Not_Found:2011/06/17(金) 01:09:36.40 ID:QK27aoQf
jQueryとDOMでimg要素を作って、HTMLに挿入するコードを作ったのですが、
IE9だと挿入されません。IE6、7、8互換モードだと想定通りの動きをしますが、
IE9だけダメなようです。(その部分より下が1行下にずれるので「何か」が入ってるようには見えるのですが…)

var element = $(document.createElement('img'));
element.attr('src', 'image/hoge.png');
element.attr('width', '236');
element.attr('height', '60');
target.after(element);

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

777 :Name_Not_Found:2011/06/17(金) 01:39:24.42 ID:???
if(/^\d+$/.test(t1.value)) alert('半角数字でつ');

778 :564:2011/06/17(金) 01:51:18.96 ID:???
>>777
ありがとうございました。

779 :730:2011/06/17(金) 02:45:42.75 ID:???
>>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_Found:2011/06/17(金) 02:45:57.57 ID:vR5kbH9N
javascript、初心者です。特殊文字変換に関して分からないことがあります。
<>といった特殊文字を投稿するときに&lt;や&gt;に変換するjavascriptを使用したいと思っています。
上の方(headタグ内)に、

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

onload =

//-->
</SCRIPT>

があります。
(&lt;等は全角で書いています、半角だと思ってください)
下に続く

781 :780:2011/06/17(金) 02:49:45.90 ID:vR5kbH9N
下の方(bodyタグ直後)に、

<button onclick="javascript: showhideForm()" accesskey="i">入力フォーム</button>
<SCRIPT type="text/JavaScript">
<!--
window.onload=showhideForm;
function showhideForm() {
var form = document.getElementsByTagName('form')[0].style;
form.display = form.display !== 'none'? 'none': 'block';
init();
}
-->
</SCRIPT>


IEで確認した所、うまくいったのですが、
Firefoxではうまくいきませんでした。
そこで、他所で質問したところ、

>上の方(headタグ内)にある、
>onload =
>を消してしまえば動くと思います。

とのことで試してみたところ、確かにIEでもFirefoxでも、うまくいったのですが、
今度はIEでもFirefoxでも他のページのフォームで特殊文字が変換できなくなりました。
下に続く

782 :780:2011/06/17(金) 02:51:42.86 ID:vR5kbH9N
他のページでは、はじめからフォームがあります。
つまり、
<button onclick="javascript: showhideForm()" accesskey="i">入力フォーム</button>

</SCRIPT>
が存在しません。

onload =
を消さず、IEでもFirefoxでも特殊文字が変換できないでしょうか?
または、消してもいいので、なんとかならないでしょうか。

783 :Name_Not_Found:2011/06/17(金) 05:57:49.91 ID:???
>>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いらんぞ。
これ以上のものがあるかは、今すぐには思いつかんが。

784 :Name_Not_Found:2011/06/17(金) 06:07:09.25 ID:???
>>780
単純なのは、showhideFormの方でonloadをやめて
addEventListenerかattachEventにする。

if (window.addEventListener) {
window.addEventListener("load", showhideForm, false);
}
else {
window.attachEvent("onclick", showhideForm);
}


addEventListenerとattachEventのどちらも使えないブラウザじゃ動かんが、
今じゃそんなん対応させる意味もないだろうし。

785 :Name_Not_Found:2011/06/17(金) 06:08:05.07 ID:???
"onclick"じゃねーや。"onload"なw

786 :Name_Not_Found:2011/06/17(金) 06:39:37.59 ID:???
ゲームなんかで使う画像を全て開いたときに先読みする場合って

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

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

787 :780:2011/06/17(金) 06:44:45.92 ID:vR5kbH9N
>>784
こうしろということですか?
なんか、エラーが出て、うまくいかないんですが…

<button onclick="javascript: showhideForm()" accesskey="i">入力フォーム</button>
<SCRIPT type="text/JavaScript">
<!--
if (window.addEventListener) {
window.addEventListener("load", showhideForm, false);
}
else {
window.attachEvent("onload", showhideForm);
}
-->
</SCRIPT>

788 :Name_Not_Found:2011/06/17(金) 06:57:07.88 ID:???
>>787
書き間違ったかと思ったが、ちゃんと通るのを確認した。

関数 showhideForm() は残せよ?
置き換えるのは showhideFormをonloadに登録してる1行だけ。
つまり window.onload=showhideForm;

789 :Name_Not_Found:2011/06/17(金) 07:20:17.09 ID:???
>>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
>>788
フヒヒ…
できました!!
ありがとうございます。

791 :Name_Not_Found:2011/06/17(金) 07:36:55.01 ID:???
もしかして、JavaScript ではヌルバイト攻撃に対処不能ですか?
探しても対応策の情報がでてこないのです。
JavaScript の処理中で影響がなければ、サーブレット側で処理ですかね?

792 :755:2011/06/17(金) 07:42:56.36 ID:???
>>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:???
>>789
src入れないとだめですよね
ほんとすみません変なコード書いちゃって

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

794 :Name_Not_Found:2011/06/17(金) 08:19:18.23 ID:???
>>792
evalなしでも一行で書けるよ
正規化に拘るのならどっちにしろ attr[i][0] 検査しないと
elem[attr[i][0]] = attr[i][1];

795 :Name_Not_Found:2011/06/17(金) 10:08:21.08 ID:???
evalでevalなよ・・・

796 :Name_Not_Found:2011/06/17(金) 10:41:24.59 ID:???
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'

797 :Name_Not_Found:2011/06/17(金) 11:27:55.27 ID:???
いや、eval使いこなしてる奴はevaってもいいかもしれん

798 :Name_Not_Found:2011/06/17(金) 12:31:12.94 ID:???
なんか最近ここで質問に答えた時とその反応が気持ちよくて
教師になっちゃおうかなって思ったりする

799 :Name_Not_Found:2011/06/17(金) 13:00:19.26 ID:???
>>794
style.border

800 :Name_Not_Found:2011/06/17(金) 16:08:34.10 ID:???
ウイルス作成罪ワロタw

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

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

801 :Name_Not_Found:2011/06/17(金) 16:12:21.07 ID:XhwdOWJ/
>>800
多くの初心者にとって、OSそのものがウィルスになっちゃうなw

802 :Name_Not_Found:2011/06/17(金) 16:17:20.77 ID:???
イカタコウイルスも
avi.exeって注意書きしてるから意図には反してなくね?
もう「これはウイルスです!実行したらHD全消去されます!」とかやっても逮捕されるレベル

803 :Name_Not_Found:2011/06/17(金) 16:26:26.83 ID:???
ぶっちゃけここで語らなければならない話題でもない

804 :Name_Not_Found:2011/06/17(金) 17:05:53.22 ID:???
>>800
不具合を放置した放置した場合も適用されたはずだぞ。


805 :Name_Not_Found:2011/06/17(金) 19:09:07.73 ID:OUSHO4Kr
6月16日に起きたgoogleのアルゴリズムの変更で何が変わったか。
http://twitter.com/creditcardmiu/status/81112388589453312

806 :Name_Not_Found:2011/06/17(金) 20:07:57.33 ID:???
JavaScriptでヌルバイト攻撃に対処するにはどう書けばいいですか?

807 :Name_Not_Found:2011/06/17(金) 20:58:03.23 ID:???
>>806
何も対処しなくていい

808 :Name_Not_Found:2011/06/17(金) 22:44:41.99 ID:???
デバッグのためCocProxyでhttpsなサイトにアクセスすると表示できないんですが、どうしたらいいでしょうか…

809 :Name_Not_Found:2011/06/17(金) 23:54:18.85 ID:JwluWHKe
タイマーIDを変数で受け取らなかった setInterval を解除したいんだけど、
どうしたらいいんだろう?
windowの中に入ってるような気がするんだけど無理なのかな?

810 :Name_Not_Found:2011/06/18(土) 01:25:39.22 ID:???
var a=setInterval(function(){},0);
clearInterval(a-1);

とすると俺の環境では上手くいくww

811 :Name_Not_Found:2011/06/18(土) 01:46:14.13 ID:???
全部解除したいならそのaから0までwhileあたりで回せばいいんだろうけど
任意の物となるとどうなんだろ

812 :Name_Not_Found:2011/06/18(土) 01:56:23.83 ID:???
IEは返ってくる数値がやたらでっかいな

813 :Name_Not_Found:2011/06/18(土) 06:27:52.29 ID:???
jwordが犯罪認定されると聞いてとんできました

814 :Name_Not_Found:2011/06/18(土) 07:34:36.83 ID:???
>>809
変数に代入してないからwindowからも触れない。
タイマーidを管理してくれるクラスを作って、キャンセルできるインターフェースを追加したらいいんじゃないかな

815 :Name_Not_Found:2011/06/18(土) 08:11:05.13 ID:???
script
function tdclick() {
    var td = document.getElementById('tbl').getElementsByTagName('td');
    for (var i = 0; i < td.length; i++) {
        td[i].addEventListener('click', function(){
            alert(td[i].textContent);
        }, false);
    }
}
window.addEventListener('load', tdclick, false);

html
<table border="1" id="tbl">
<tr><th>AA</th><th>BB</th><th>CC</th></tr>
<tr><td>A1</td><td>B1</td><td>C1</td></tr>
<tr><td>A2</td><td>B2</td><td>C2</td></tr>
</table>

td[i]が定義されてないというエラーが出てイベントが登録できません
forで回さずに
td[0].addEventListener('click', function(){
    alert(td[0].textContent);
}, false);
td[1].addEventListener('click', function(){
    alert(td[1].textContent);
}, false);
このようにすれば登録できるみたいなんですけどどうやって登録するのが正しいのでしょうか?

816 :Name_Not_Found:2011/06/18(土) 08:39:18.97 ID:???
>>815

function tdclick() {
var nodes = document.getElementById('tbl').getElementsByTagName('td');
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener('click', strAlert(nodes[i].textContent), false);
}
function strAlert(str) {
return function(){ alert(str); };
}
}

window.addEventListener('load', tdclick, false);


iがループで変化してる。どのセルをクリックしても td[6](=存在しない)を参照しようとする。
クロージャ作って必要な値をしっかり切り離して固定しないとダメ。
デバッガ使って、バグった時点のiの値を見れば原因の見当がついたはず。デバッガ覚えること推奨。

817 :815:2011/06/18(土) 08:47:58.60 ID:???
>>816
どうもありがとうございます
firefoxのエラーメッセージ見てましたが使い方がよくわからなくて
頑張ってデバッガの使い方を勉強します
クロージャもよくわからないのでそちらも調べてみます

818 :Name_Not_Found:2011/06/18(土) 09:03:44.53 ID:???
>>815
function tdclick() {
var td = document.getElementById('tbl').getElementsByTagName('td');
for (var i = 0; i < td.length; i++)(function(targetTd){
targetTd.addEventListener('click', function(){ alert(targetTd.textContent); }, false);
}(td[i]);
}
window.addEventListener('load', tdclick, false);

多分解決してると思うけど、こういう書き方もある。

819 :Name_Not_Found:2011/06/18(土) 09:28:33.33 ID:???
これ何でテンプレにないのかね
初心者がはまる黄金パターンだろ

820 :Name_Not_Found:2011/06/18(土) 09:53:12.76 ID:???
お茶飲んでたらふと思った。
本当にやりたいことってたぶんこういうことだよなw

function tdclick() {
var nodes = document.getElementById('tbl').getElementsByTagName('td');
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener('click', function(){ alert(this.textContent); }, false);
}
}

821 :Name_Not_Found:2011/06/18(土) 10:18:15.87 ID:???
>>807
ありがとうございます。
アレはサーバサイドが対処するものなのですか?
XSSはクライアントサイドで対処するもので、
その質問の中で出てきたのでこれもクライアントサイドかと・・・。
ユーザの入力値を、サーバ側のファイル系関数とかに
ノーチェックで入れたりしなければ大丈夫ですよね?

822 :Name_Not_Found:2011/06/18(土) 10:24:28.45 ID:???
何もできない、が正しいな。
ユーザーの入力データをJavaScriptが受け取る前に、
ブラウザがそれをJavaScriptに渡すように処理するが、
その処理に穴があるとマズいって話。

823 :Name_Not_Found:2011/06/18(土) 10:25:12.91 ID:???
>>815-819
それは >>2 のQ7/A7をさして同じ問題だと言えばよい。
それで真面目に考えない方はお帰り頂きたいと思っている。
答えるほうもいちいちこねくり回さずにそうひとこと言えばいいのに。

824 :Name_Not_Found:2011/06/18(土) 10:28:34.56 ID:???
>>822
ありがとうございます。
ブラウザの作り次第、ということでしょうか?

825 :Name_Not_Found:2011/06/18(土) 10:40:26.51 ID:???
this問題とはまた別なんじゃないの

826 :Name_Not_Found:2011/06/18(土) 10:46:29.38 ID:???
解決方法という意味では、どちらもクロージャ使えってことで同じ。
問題の内容としては、ループ内で変化する値を固定したいという話と、
実行時のthisが違うという話は全く別のことだな。

827 :Name_Not_Found:2011/06/18(土) 10:58:08.19 ID:???
>>818は動かないでしょforの外にあるし
for()(function(){
はコード的にもちょっと気持ち悪い・・・

for () {
(function(hoge){
hoge.addEventListener();
})(td[i]);
}

828 :Name_Not_Found:2011/06/18(土) 11:01:01.04 ID:???
>>820はクロージャーなのか?

829 :Name_Not_Found:2011/06/18(土) 11:16:43.43 ID:???
ループ回さなくてもすむならループ回さない方向で

<html>
<body>
<table border="1" id="tbl">
<tr><th>AA</th><th>BB</th><th>CC</th></tr>
<tr><td>A1</td><td>B1</td><td>C1</td></tr>
<tr><td>A2</td><td>B2</td><td>C2</td></tr>
</table>
<script>
(function(){
document.getElementById("tbl").addEventListener("click",function(event){
if(event.target.nodeName.toLowerCase()==="td"){
alert(event.target.textContent);
}
},false);
})();
</script>
</body>
</html>

830 :Name_Not_Found:2011/06/18(土) 11:27:04.34 ID:???
>>828
・クロージャかどうかという点では、厳密な意味で言えばクロージャ。
 入れ子関数が1つでも生きてる限り、親関数のCallオブジェクトは破棄されない。

・クロージャにする意味があるかどうかという点では、この場合は意味はない。
 関数に名前つけて外に出してしまえば、無駄にメモリ確保を続けることがなくなる。
 もちろん、普通はそうするべき。

>>820>>815の解決方法として適切かどうかについては、
 >>815自身が動作を理解して考えるしかないな。
 動作の意味が違っているわけだから。

831 :Name_Not_Found:2011/06/18(土) 12:49:22.91 ID:???
結果が一緒なら動作の意味なんて考えなくてもいい
というスタンスだったがこのままじゃヤバイか
キミらの話難しくてついていけないぜ

832 :Name_Not_Found:2011/06/18(土) 13:00:44.15 ID:???
>>827
記述ミスがあるから動かないけど、ちゃんと記述されてれば動くよ。
forの後の(function(targetTd){から})(td[i]);までが
1つのブロックとして解釈される。

833 :Name_Not_Found:2011/06/18(土) 14:00:34.43 ID:???
>>831
処理が最も単純なのは>829。これで解決するならこれでいい。
ただ、tableにいろいろ追加・変更したり、腐ったブラウザ(IE8以前とか)に対応させようとすると、
書き換えなきゃいけない部分がいろいろ出てくる。

発想として最も単純なのは>820。変更があるとしても、書き換える部分はそんなに多くないし、
その場合、>829の「イベントは発生するが処理から除外する」という発想よりは
「イベントハンドラをつけない」という発想の方が、たぶん分かりやすい。

問題の本質が「対象のtextContentを特定する」ことではなくて、「 i を固定すること」だった場合、
>829も>820も参考にならない。たとえばtdの数と同じだけの要素数を持った配列が別にあって、
それを各イベントハンドラに対応させようとするなら、>816とかを参考にしてクロージャ作るしかない。

どれが>815にとって本当にちょうどいい回答なのかは、>815の質問だけでは判断し切れない部分があるわけ。
動作の意味がどうこうってはそういうこと。

834 :Name_Not_Found:2011/06/18(土) 14:09:02.18 ID:???
まとめ乙

835 :Name_Not_Found:2011/06/18(土) 14:16:41.01 ID:???
>>829のはクリック毎に毎回判定する感じなのかな?
効率は悪そうに見えるけどどうなんだろう?

836 :Name_Not_Found:2011/06/18(土) 14:20:52.36 ID:???
>>835
この程度なら無視できるレベルじゃないのかな
メモリ効率はこっちの方が良さそう

837 :Name_Not_Found:2011/06/18(土) 14:29:50.65 ID:???
それぞれどういう関係なんですか
数をたくさん登録してメモリを使うか
広い範囲を指定してバブリング毎に調べてCPUを使うか?

838 :think49 ◆bKk/qcAKuM :2011/06/18(土) 14:45:42.36 ID:???
>>829は対象のtd要素ノードが replaceChild されても動きますが、他は動きません。

839 :Name_Not_Found:2011/06/18(土) 14:49:34.37 ID:???
質問です。

下記サイトを見ながら、画像をマウスオーバーするとプルダウンメニューが出るようにしたのですが、
画像の段が2段になると1段目画像のプルダウンメニューが2段目画像の下に潜ってしまいます。
ttp://www.css-lecture.com/log/javascript/jquery-droppy-menu.html
ttp://www.css-lecture.com/template/2009/0622/

<試した環境>
OS: WinXP 32bit SP3
ブラウザ: IE6〜8、Firefox3.6、Chrome12.0
webサーバ: 外部のIIS、Apache

IE6〜8とIISという組み合わせでのみ問題が出ます。どうしたらいいでしょうか?

840 :Name_Not_Found:2011/06/18(土) 15:21:18.73 ID:???
>>839
上下関係はJavaScript関係ない。CSSのz-index

841 :Name_Not_Found:2011/06/18(土) 16:11:35.49 ID:???
すっごい初歩的な質問なんですが

function a(){}
function b(){}

とあるとき、function bを実行したときfunction bの中でfunction aを実行するにはどうしたらよいのでしょうか?

842 :Name_Not_Found:2011/06/18(土) 16:18:41.71 ID:???
>>841
function b(){ a(); }


843 :Name_Not_Found:2011/06/18(土) 16:20:45.06 ID:???
>>842
ありがとうございます!

844 :Name_Not_Found:2011/06/18(土) 19:05:08.24 ID:???
>>841
「原理原則」や「机上の空論」を正論と思って賞賛してよいのは中学二年生まで

845 :Perl忍者:2011/06/18(土) 19:07:09.50 ID:???
みんなこれフォロー
http://d.hatena.ne.jp/sugyan/20110616/1308203734

ここに乗ってるのフォローしてくださいお願いします

お願いですjavascriptのみなさんおねがいです

846 :839:2011/06/18(土) 19:11:29.07 ID:???
>>840
すいません、仰るとおりでした。ありがとうございました。

847 :Name_Not_Found:2011/06/18(土) 19:12:33.75 ID:???
使い終わった変数にnullを代入するのはどういう場合にするんですか?常にしたほうがいいんですか?

848 :Name_Not_Found:2011/06/18(土) 19:19:01.93 ID:???
循環参照を切るときかな

849 :Name_Not_Found:2011/06/18(土) 19:23:33.72 ID:???
>>847
理由は2つ。

1つは「あとでその変数を調べることがあって、
その時にnullが入ってることを期待したい」場合。
たとえば処理済みの印代わりとしての意味。

もう1つは「その変数に何らかの参照が入っていて、
別の何かを代入することで参照を切りたい」場合。
もはや使わないオブジェクトの参照を切って、メモリの解放を期待する意味。

このどちらでもないなら不要。

850 :Name_Not_Found:2011/06/18(土) 19:25:54.33 ID:???
>>848-849
どうもありがとうございます
不要な場合のほうが多いんですね
あんまりよくわかっていないのでそのままにしておきます

851 :Name_Not_Found:2011/06/18(土) 19:49:58.63 ID:???
>>845
JavaScriptゆかりならこっちだろう
http://d.hatena.ne.jp/replication/20110615/1308063792
http://efcl.info/2010/0304/res1584/

852 :Name_Not_Found:2011/06/18(土) 21:16:20.25 ID:???
phpと組み合わせて

onclieck="func(a,b〜n)"
と中の引数が1〜複数に変わるイベントハンドラを作ったんですが
function func(???){
for(i=1; i<=引数の数)
array[1] =
}
とやる場合どーすればいいんでしょ?


853 :852:2011/06/18(土) 21:18:12.99 ID:???
ごめんなさい、書いてる途中にかきこみしてしまいました

phpと組み合わせて

onclieck="func(a,b〜n)"
と中の引数が1〜複数に変わるイベントハンドラを作ったんですが

function func(a1,b1〜n1){
  for(i=1; i<=引数の数; i++)
  array[i] =第 i 引数(a1);
}
とやる場合どーすればいいんでしょ?

854 :Name_Not_Found:2011/06/18(土) 21:21:01.54 ID:???
function hello(){
    alert(arguments) // [1,2,3,4,5,6]
}

hello(1,2,3,4,5,6);

855 :Name_Not_Found:2011/06/18(土) 21:21:48.31 ID:???
PHP関係あるんかいな
オンクリークじゃ動かんで

856 :Name_Not_Found:2011/06/18(土) 21:26:19.24 ID:???
php関係あるというか
phpでファイル読み込んで、そのファイルの数だけ引数作るという感じです
ファイル数が3個なら
func(a,b,c)
7個なら
func(a,b,c,d,e,f,g)
という具合に

857 :Name_Not_Found:2011/06/18(土) 21:31:01.47 ID:???
絶対設計を見直すことをおすすめします

858 :Name_Not_Found:2011/06/18(土) 21:33:23.20 ID:???
>>852

array[1] = a1;
array[2] = b1;
array[3] = c1;

array[n] = n1;

ってこと?

function func() {
var x = array[0];
array = [];
Array.prototype.push.apply(array, arguments);
array.unshift(x);
}

859 :Name_Not_Found:2011/06/18(土) 21:34:21.05 ID:???
>>857
それは心の底から思うが、言われて直せるなら最初からこんな設計してないw

860 :Name_Not_Found:2011/06/18(土) 21:36:26.57 ID:???
>>854
argumentsは配列とちゃうぞ

861 :Name_Not_Found:2011/06/18(土) 21:44:30.80 ID:???
おっと、微妙に無駄なことしてたな。

function func() {
array = [array[0]];
Array.prototype.push.apply(array, arguments);
}

862 :Name_Not_Found:2011/06/18(土) 21:49:27.78 ID:???
今ひらめいた

a,b,c,d,e〜をさいっその事
a/b/c/d/e〜って一つにしちゃって
それを/でスプリットすればいいんじゃね?
そーすりゃarray.lengthで数取り出してarray[1]で値も取り出せる

863 :Name_Not_Found:2011/06/18(土) 21:55:01.93 ID:???
>>862
普通、PHPでJavaScriptのコード吐くなら、最初からJavaScriptで読めるデータ作る。
つまり

var arr = [ a1, b1 c1, ... n1 ];
↑この一行をPHPで吐くようにしてる。
わざわざ引数することも1つの文字列にすることもない。てかそんな発想普通出てこないw

864 :Name_Not_Found:2011/06/18(土) 22:02:45.37 ID:???
>>861
Array.prototype.slice.call(arguments); 

865 :Name_Not_Found:2011/06/18(土) 22:03:40.50 ID:???
C++等にあるような、インスタンスを作らずに「クラス名.変数名」のような感じでアクセスできる
クラスstatic変数を作りたいのですが、prototype内に変数を作って「クラス名.prototype.変数名」とする以外の手が今のところ見つかりません
これ以外に効果的な方法ってありますでしょうか?

866 :Name_Not_Found:2011/06/18(土) 22:05:38.87 ID:???
C++はClassベースのオブジェクト指向言語で、JavaScriptはPrototypeベース。
全く別物

867 :Name_Not_Found:2011/06/18(土) 22:07:20.06 ID:???
>>865
関数名.prototype.変数名がイヤなら、関数名.変数名でかまわんぞ。
関数はオブジェクトだ。

868 :Name_Not_Found:2011/06/18(土) 22:38:07.89 ID:???
>>864
第一要素をunshiftするなら結局2行じゃん

869 :Name_Not_Found:2011/06/18(土) 22:43:21.00 ID:jAhRCGR2
>>868
Array.prototype.slice.call(arguments,1);

870 :Name_Not_Found:2011/06/18(土) 22:55:12.86 ID:???
>>869
だから何が言いたいんだよ。
>>852-853では、どこかで定義されてる配列 array の
第一要素 array[0] を上書きしてないぞ。
そこにデータが入ってた場合に、お前さんのコードでどうなるか
分かってレスしてるんだよな?

871 :Name_Not_Found:2011/06/18(土) 23:15:46.91 ID:???
どうせphpで渡すんなら()じゃなくって([])にすりゃ問題解決

872 :Name_Not_Found:2011/06/19(日) 00:39:27.55 ID:???
<script>
var x = 0;
function testEvent(e){
console.log(e);
x++;
e.target.style.left += (x + "px");
setTimeout("testEvent('" + e + "')",100);
}

window.onload = function(){
var hoge = document.getElementById("hogehoge");
hoge.style.position = "absolute";
hoge.addEventListener("click", testEvent, false);
}
</script>
<div id="hogehoge">hogehoge</div>


hogehogeという文字をクリックすると、それが画面右にものすごい勢いで移動していくスクリプトを作りたかったのですが、うまくいきませんでした。
調べてみたところ、setTimeoutでtestEventを呼び出したときに、イベントオブジェクト(e)を渡すのに失敗していました。
e.target.style.left += (x + "px");の部分でe.targetがundefinedだと怒られました。

console.logの結果を見てみると、clickイベントで呼び出されたtestEventの引数にはちゃんとMouseEventが渡されていて
targetなどのプロパティを持っていることを確認できましたが
setTimeoutで呼び出された場合は [object MouseEvent] とだけ出力されており、その中身は何もないという状態です。

clickイベントによって渡されるイベントオブジェクトを使いまわすことはできないのでしょうか?

873 :Name_Not_Found:2011/06/19(日) 00:55:59.23 ID:???
setTimeout(function(){
testEvent(e);
},100);
にしたらどうかな
ちなみにsetTimeoutには文字列を渡さないようにしよう
eval的な理由で


874 :Name_Not_Found:2011/06/19(日) 01:11:54.00 ID:???
"testEvent('" + e + "')"
これに何が入るかちょっと考えたらわかるよね

875 :872:2011/06/19(日) 02:10:27.40 ID:???
setTimeout("testEvent('" + e + "')",100);
の部分はsettimeoutの内部でeval的な事をしているのですね
色々と理解できました。ありがとうございます。

876 :Name_Not_Found:2011/06/19(日) 08:37:27.12 ID:???
スタイルをまとめて追加するのに、style要素を作ってそこにテキストを入れる方法ではだめなんですか?
スタイルを操作するインターフェイスが用意されているのには理由があるんですか?
insertRuleとかaddRuleとか難しくてよくわかりません

877 :Name_Not_Found:2011/06/19(日) 08:58:33.25 ID:???
まあやってみろ
IE6がオヌヌメ

878 :Name_Not_Found:2011/06/19(日) 09:54:20.80 ID:???
IEでおかしなことになるんですね
どうもありがとうございます

879 :Name_Not_Found:2011/06/19(日) 15:05:54.06 ID:???
ユーザの入力値に変な値(制御文字)が紛れ込むのを防ぐために、
str = str.replace( /[\x00-\x1F]/g, "" );
とするのは有効でしょうか?
改行コードも含めて制御コードを丸ごと消したいです。

880 :Name_Not_Found:2011/06/19(日) 16:17:48.29 ID:???
何に対して有効なのかが分からないとねえ
クライアントサイドで完結してるなら意味はあるけど
サーバーサイドで処理するためなら全くの無意味

881 :Name_Not_Found:2011/06/19(日) 16:52:25.24 ID:???
>>880
ありがとうございました。
サーバサイドでも実施すれば大丈夫ですか?
PHPでできるかはまだ不明ですが。

想定しているのはユーザが変なデータを送ってくるパターンです。

882 :Name_Not_Found:2011/06/19(日) 17:02:20.17 ID:???
>>881
サーバに送ってくるのが前提ならサーバサイドでやらないと無意味。
JavaScriptを介さずサーバに送信することができるから。

883 :Name_Not_Found:2011/06/19(日) 17:11:05.74 ID:???
>>882
そんなことができるのですか!?
では、入力値のチェックは、クライアント側では完全に無意味なのですね。
サーバ側のチェック関数を強化するようにします。m(_ _)m

884 :Name_Not_Found:2011/06/19(日) 17:33:09.41 ID:???
var node = document.getElementById("hoge");
var clone = node.cloneNode(true);
//cloneへの処理
node.parentNode.replaceChild(node, clone);

何箇所も書き換える場合はクローンノードを作ってそっちで書き換えてから
出来上がったものを一回で差し替えたほうがいいらしいのでやってみたのですが
処理自体が多いので結局差し替えるまでの間待たされてその間操作ができません
「//cloneへの処理」を見直す以外に何かいい方法とかありますか?
定番のやり方とかあれば教えてください

885 :Name_Not_Found:2011/06/19(日) 18:02:07.97 ID:???
何やってんだ
使うのはDocumentFragmentだろ

886 :Name_Not_Found:2011/06/19(日) 18:30:49.87 ID:???
しかしweb制作板って民度わりと高いんだな

887 :Name_Not_Found:2011/06/19(日) 18:38:30.53 ID:???
このスレは良い人ばかりだよ
冗談も通じるし2chの良心

888 :884:2011/06/19(日) 18:49:59.03 ID:???
>>885
ページ上にもともとあるノード(実際にはその子孫ノード)に対して何箇所も書き加えるので
ベースとなる元のやつを複製したほうが楽だなと思ったのですがフラグメント内に自前で構築するのですか?
それともクローンノードをいったんフラグメントに入れておくんですか?
cloneNodeで複製されたものは元のドキュメントから切り離されるらしいのでフラグメントと同じようなものだと思ってました

889 :884:2011/06/19(日) 18:58:13.11 ID:???
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>...</li>
</ul>
たとえばこういうのの各li要素を加工したいので
ul要素ごとcloneNode(true)してから各li要素を加工して
最後にul要素を差し替えれば楽だと思ったのですが
documentFragmentをどう使うんでしょうか
複数の要素をまとめて挿入するときの入れ物としてしか使ったことがないです

890 :Name_Not_Found:2011/06/19(日) 20:24:43.39 ID:???
Rangeを使えるなら
range.selectNodeContents(ul);
var df = range.extractContents();
dfの子になっているliを加工した後
ul.appendChild(df);

この場合cloneNodeは使うな
ulのイベントリスナーが消える

891 :Name_Not_Found:2011/06/19(日) 20:30:17.91 ID:???
>>888
DocumentFlagmentはただのコンテナで合ってる。ドキュメントのノードを丸ごとcloneNodeして
DocumentFlagmentに入れて操作して、最後に入れ替える、でおk。

処理があまりに遅くて、ブラウザの反応が悪くなりすぎるのであれば
処理の途中でブラウザが処理するタイミングを作るという手がある。
小手先のごまかしだから、処理そのものの改善は前提だし、
ブラウザの処理中に別のイベントが発生した場合の対処とか、一気に複雑になるけど。

// 元処理
function func() {
/* 処理1 */
/* 処理2 */
/* 処理3 */
}

// 途中でブラウザに処理を渡すパターン
function func() {
setTimeout(f1, 0);
function f1(){ /* 処理1 */ setTimeout(f2, 0); }
function f2(){ /* 処理2 */ setTimeout(f3, 0); }
function f3(){ /* 処理3 */ }
}

892 :Name_Not_Found:2011/06/19(日) 20:48:03.53 ID:???
>>890-891
レスどうもありがとうございます
なんか急に難しい感じに・・・
レス内容はまだ理解できていないのでよく熟読します

893 :Name_Not_Found:2011/06/20(月) 00:15:03.71 ID:???
>>891
setTimeoutを使うと並行処理みたいなことが出来る的なことが
検索したら書いてありました
やってる意味がちょっと理解できました

894 :Name_Not_Found:2011/06/20(月) 00:50:00.24 ID:???
どうでもいいがsetTimeoutの最低値は4な

895 :Name_Not_Found:2011/06/20(月) 01:03:23.64 ID:???
>>893
その理解でいいんだけど非同期処理は処理が衝突する可能性があるから衝突してはいけない処理は独自にロックする機構が必要だよ

896 :Name_Not_Found:2011/06/20(月) 01:04:19.53 ID:???
>>886
このスレはともかく、板全体で見たらヒドいてw

897 :Name_Not_Found:2011/06/20(月) 02:08:56.55 ID:???
>>894
え、そこって普通わざわざ最低値に合わせて書くもんなの?
0のがメジャーじゃね?

898 :Name_Not_Found:2011/06/20(月) 04:23:14.49 ID:???
0は絶対にメジャーじゃない
IE6かなんかで変なことになったから

899 :Name_Not_Found:2011/06/20(月) 07:04:46.48 ID:???
setTimeoutに衝突の心配なんてあったっけ?
順番通り実行されるロジックがあれば大丈夫だろ

900 :Name_Not_Found:2011/06/20(月) 07:47:48.07 ID:???
>>899
>>884を例にとると、#hode を操作する処理がもう一つあると衝突する
一方が処理中であることを表すフラグをどこかにたてておけば回避できる

901 :Name_Not_Found:2011/06/20(月) 10:27:00.32 ID:???
テンプレ議論しないの?

902 :Name_Not_Found:2011/06/20(月) 12:14:26.46 ID:???
>>901
したいならすりゃいいと思うよ
ハイドウゾって言われるまで出来ないなら知らん。


903 :Name_Not_Found:2011/06/20(月) 12:15:10.64 ID:???
Firefoxで、リンクurlの#を無効にできますか?
../index.html#colum02
などのリンクを踏んだとき、#colum02へハッシュ移動するのを停めたいのですが
Firefoxだとどうしても移動してしまいます
これはFirefoxの仕様ということで無理なのでしょうか?

904 :Name_Not_Found:2011/06/20(月) 12:42:27.81 ID:???
window.onload = function() {
var a = document.querySelectorAll('a[href]');
for (var i = 0; i < a.length; i++) {
a[i].href = a.item(i).toString().replace(/#.*/, '#');
}
};

905 :Name_Not_Found:2011/06/20(月) 12:42:54.29 ID:???
<html>
<head>

906 :Name_Not_Found:2011/06/20(月) 12:44:43.92 ID:???
<html>
<head>
<script text="javascript">
var a = [
{"a":"aaaaaaaaa"},
{"b":"bbbbbbbbb"}
];
</script>
</head>
<body>
</body>
</html>

javascriptで{"b":"bbbbbbbbb"}の部分を{"b":"CCC"}に変更する方法をご教示お願いします

907 :Name_Not_Found:2011/06/20(月) 12:55:32.85 ID:???
a[1]["b"]="CCC"; // or a[1].b="CCC";
alert(a[1]["b"]);

908 :Name_Not_Found:2011/06/20(月) 13:39:12.65 ID:???
それはテキストエディタで書き換えてるだけですよね

909 :Name_Not_Found:2011/06/20(月) 13:42:54.84 ID:???
もうちょっとちゃんとやりたい事を書くべきだ。
そして作成依頼ならスレチ。

910 :Name_Not_Found:2011/06/20(月) 13:51:06.25 ID:???
AjaxでURLのパラメータに+を含む文字列を渡したいのですが
escape()だと+が変換されませんでした。
そこでencodeURIComponent()を使おうと思うのですが
対応としてはこれであっていますでしょうか?

911 :Name_Not_Found:2011/06/20(月) 13:55:22.51 ID:FHg6ffuw
>>908
エスパー回答求めても応えられる奴いねぇと思うぞ。
↓あえて別回答してみたけど、たぶんコレじゃねぇしなw試してねぇから動くかは保証しない。

var elem = document.getElementsByTagName('script')[0];
elem.innerText = elem.innerText.replace('{"b":"bbbbbbbbb"}','{"b":"CCC"}');

912 :Name_Not_Found:2011/06/20(月) 14:02:27.88 ID:???
変更するって書いてあれば普通DOMを操作するしかないと思うんだがね
やり方は>>911の方法を試せば出来る

913 :Name_Not_Found:2011/06/20(月) 19:23:28.14 ID:???
<body style="background-color:silver;">
<canvas id="canvas" width="500" height="500"></canvas>
<script>
var ctx = document.getElementById("canvas").getContext("2d");

ctx.fillStyle = "aqua";
ctx.fillRect(0, 0, 500, 500);

ctx.shadowColor = "blue";
ctx.shadowBlur = 100;

ctx.fillStyle = "lime";
ctx.fillRect(50, 50, 200, 200);

ctx.fillStyle = "red";
ctx.arc(250, 250, 150, 0, Math.PI * 2, true);
ctx.fill();

ctx.clearRect(150, 150, 200, 200);
</script>
</body>

canvasなんですが、赤い円の中を四角で切り抜いて
切り抜いた赤い円の内側(円の中心方向)にも影を付けるにはどうすればいいですか?
あと下の緑の四角と水色の四角も切り抜いた赤い円の内側から見えるようにしたいです

914 :Name_Not_Found:2011/06/20(月) 19:30:45.55 ID:???
>>913
canvasは専用スレできてるからここで聞かないでね
Canvasについて語ろう
http://hibari.2ch.net/test/read.cgi/hp/1305093769/

915 :Name_Not_Found:2011/06/20(月) 19:35:11.91 ID:???
>>914
誘導ありがとうございますm(_ _)m

916 :Name_Not_Found:2011/06/20(月) 19:49:59.74 ID:???
いやこっちのスレでいいんじゃないの
あっち稼働してないでしょ

917 :Name_Not_Found:2011/06/20(月) 20:26:50.47 ID:???
専用の話題はここじゃなくていいよ

918 :Name_Not_Found:2011/06/20(月) 20:28:15.84 ID:???
もう900超えだったんだ。テンプレ論議の簡単なものは今どぞ。

919 :Name_Not_Found:2011/06/20(月) 20:31:37.72 ID:???
jQueryがいいように JavaScript の話題ならここでもいいんじゃない?

920 :Name_Not_Found:2011/06/20(月) 20:38:34.39 ID:???
>>914
情報が欲しくて立てた上で放置してるスレでしょ

921 :Name_Not_Found:2011/06/20(月) 20:48:39.46 ID:???
>>917
じゃあ、Ajax,HTML5,jQuery,canvas,ECMAScriptはスレ違いになるな

922 :Name_Not_Found:2011/06/20(月) 20:53:35.10 ID:???
canvas関連の話題も食いついてくる連中多いのに
スレ分けちゃうと管理がめんどくさい
あっちはなんか面白いもの貼っていこうぜ的な雰囲気になってるような?

923 :Name_Not_Found:2011/06/20(月) 20:53:56.54 ID:???
ほとんど残らないww

924 :Name_Not_Found:2011/06/20(月) 20:54:37.81 ID:???
というかあっちは雑談スレだし質問スレじゃないからね。

925 :Name_Not_Found:2011/06/20(月) 21:36:23.04 ID:???
Ajaxの質問でもいいでしょうか?
Ajaxでテキストファイル読み込むとどーしても文字化けしてしまうとです
読み込むスクリプトがあるHTMLの文字コードはUTF-8なんですが対処法とかないでしょうか?

926 :Name_Not_Found:2011/06/20(月) 21:41:03.95 ID:???
>>925
テキストファイルがUTF-8ではないのでは?

927 :Name_Not_Found:2011/06/20(月) 21:47:56.82 ID:???
>>926
Shift-JISのページで更新&使うので、そうなんです
UTF-8のページでどうにか文字化けせずに呼び出せないでしょうか?

928 :Name_Not_Found:2011/06/20(月) 21:51:31.62 ID:???
overrideMimeType

929 :Name_Not_Found:2011/06/20(月) 21:52:42.12 ID:???
細分化するのは投稿数が多い時だけだよ
今のcanvasの投稿は1ヶ月に数回あるかないかで分ける必要はない
canvasスレ立てた人は少ない投稿を集約したかっただけ
立てた人はアウトプットする気はないし、アウトプットする人が多いわけでもないから当然廃れる
HTML5スレでさえ廃れてるのにcanvasだけでで賑わうわけがない

930 :Name_Not_Found:2011/06/20(月) 21:59:56.40 ID:???
>>927
htaccess 辺りで Content-Type を設定してみては?

931 :Name_Not_Found:2011/06/20(月) 22:00:02.87 ID:???
ここでいいんじゃないかな

932 :Name_Not_Found:2011/06/20(月) 22:49:03.70 ID:???
誰もcanvasの質問に答えてくれてない薄情さ

933 :Name_Not_Found:2011/06/20(月) 22:52:06.63 ID:???
>>921
HTML5はたしかにスレ違いになるよな

934 :続きます:2011/06/20(月) 23:04:01.78 ID:???
ttp://lagoscript.org/jquery/autopager を使用して以下のコードを書きました。

<a id="next" rel="next" href="?page=1">次へ<a>
をクリックすると、次のページの内容をloadするとともに、?page=1を+1します。

$('a[rel=next]').click(function() {
var url_param;
$.autopager({
autoLoad: false,
content : 'content'
});
$.autopager('load');

url_param = $(this).attr('href').replace(/page=(\d+)/, function (whole,s1) {
return 'page='+ (Number(s1)+1);
});
$(this).attr('href', url_param);

return false;
});


935 :Name_Not_Found:2011/06/20(月) 23:15:23.89 ID:???
>>891
こういうテクニックほかにもあったら教えてください

936 :Name_Not_Found:2011/06/20(月) 23:19:41.68 ID:???
>>933
innerHTML や new Image がスレ違いになるとは思わないけどね

937 :Name_Not_Found:2011/06/20(月) 23:32:38.30 ID:???
HTML5の話題はあっちでやってくれ
【WHATWG】HTML5 Part3【W3C HTML WG】
http://hibari.2ch.net/test/read.cgi/hp/1295872957/

938 :Name_Not_Found:2011/06/20(月) 23:53:53.40 ID:???
>>934
続きマダー?

939 :934:2011/06/21(火) 00:40:22.79 ID:???

このコード、最初は
$.autopager({
autoLoad: false,
content : 'content'
});
を先頭に記述していて、うまく動いていませんでした。
pageは+1されるのですが、クリックしても+1される前の
値がgetされます。うまくいかない原因は何なのでしょうか?

940 :Name_Not_Found:2011/06/21(火) 01:46:39.69 ID:???
JavaScript API の話はここでいい

941 :Name_Not_Found:2011/06/21(火) 07:30:54.43 ID:???
>>935
なんだその漠然とした質問はw

942 :Name_Not_Found:2011/06/21(火) 10:17:41.38 ID:???
pageA
<a href="pageB.html#footer">link</a>

pageAにおいて上記リンクをクリックしてpageBが表示される際に、
#footerへhushするのを強制的に停めたい(ページの最上部を表示したい)です。

pageBのself.location.herfを走査しても間に合わないみたいですが
どうすればよいでしょうか(特にie,firefox)

943 :Name_Not_Found:2011/06/21(火) 11:25:01.70 ID:???
var hash = location.hash;
if (hash) location.replace(location.href.replace(hash, ''));

locationを置き換えてやればいいんじゃないか。

944 :Name_Not_Found:2011/06/21(火) 11:33:25.73 ID:???
2ちゃんのdatファイルを取得したいのですがうまくいきません

945 :Name_Not_Found:2011/06/21(火) 11:36:05.24 ID:???
>>944
そうですか(終了)。 そもそもJavaScriptと関係があるの?

946 :Name_Not_Found:2011/06/21(火) 11:38:15.27 ID:???
ajaxで取得してるんですけどどこで聞いたらいいですか?

947 :Name_Not_Found:2011/06/21(火) 11:38:15.94 ID:???
うまくいきません
とか言いつつたぶん何も試してない

948 :Name_Not_Found:2011/06/21(火) 11:56:03.94 ID:???
自分のサイトから取得できませんとかいう話ではないんだよね

949 :Name_Not_Found:2011/06/21(火) 11:59:46.19 ID:???
function hoge(obj){obj.background="img/hoge.png";}
IEだと変更できるんですが、他のブラウザだと変更できません
何が悪いんでしょうか?

950 :Name_Not_Found:2011/06/21(火) 12:04:17.29 ID:???
objに何を渡しているの?DOMのエレメントノード?

951 :Name_Not_Found:2011/06/21(火) 12:07:51.43 ID:???
onmouseover="hoge(this)"
です

952 :Name_Not_Found:2011/06/21(火) 12:07:53.02 ID:???
いやいや、そこじゃないだろ

953 :Name_Not_Found:2011/06/21(火) 12:20:22.62 ID:???
デスクトップに置いてあるhtmlとjavascriptからdatファイルを取得したいんですけどエラーも何も出ないんです

954 :Name_Not_Found:2011/06/21(火) 12:28:25.56 ID:???
>>951
obj.style.backgroundImage = 'url("img/hoge.png")';

backgroundはbodyしか持ってないし、style使え。
IEだとなんでもアリなのか。

955 :Name_Not_Found:2011/06/21(火) 12:34:02.91 ID:???
>>954
なるほど、IEに甘えるなってことですね
ありがとうございます

956 :Name_Not_Found:2011/06/21(火) 12:44:19.01 ID:???
HTMLの普通の知識があれば
bodyでさえbackgroundが非推奨なのは分かりそうなものだが
HTML5のHTMLBodyElementでも、必ずしもサポートの必要がないものに分類されてる

957 :Name_Not_Found:2011/06/21(火) 12:58:57.00 ID:???
canvasってjavascriptなの?

958 :Name_Not_Found:2011/06/21(火) 13:05:26.01 ID:???
canvas要素はhtmlだけどcanvas APIはDOM APIと同じような位置づけじゃないの

959 :Name_Not_Found:2011/06/21(火) 13:07:09.32 ID:???
CanvasAPIを実装してるのがJavaScriptでブラウザもそれをサポートしているというおはなし

960 :Name_Not_Found:2011/06/21(火) 13:08:25.23 ID:???
C#から使えるcanvasとはまた違うの?

961 :Name_Not_Found:2011/06/21(火) 13:15:26.48 ID:???
canvasクラス?C++にもJAVAにもある
あれって描画する機能を持たせたクラスにcanvasって名前付けてるだけって程度の意味合いでは?
windowって付いてるとMicrosoft Windowsと何か関係あるのかなって思ってしまう人もいるとかいないとか

962 :Name_Not_Found:2011/06/21(火) 13:24:36.24 ID:???
プラグインでサポートさせれば、他の言語でもやろうと思えばできるはず。
あえてする必要がないからやらないだけ。

963 :Name_Not_Found:2011/06/21(火) 13:27:49.09 ID:???
必要がないっつーか、プラグインまわりが腐ってるから
全部ネイティブにしようぜってなったんだろ

964 :Name_Not_Found:2011/06/21(火) 14:50:59.15 ID:???
ttp://turbo-type-teru.itigo.jp/web_creators/200905/other/html/#
上記のサイトと同じiavalampメニューを作成しましたが(読み込むjquery群も上記サイトと同一です)、
「<li><a href="#"」の"#"欄にリンクを指定しても、クリックで指定先に飛べません。
ソースのどこを修正すればよいでしょうか?

965 :Name_Not_Found:2011/06/21(火) 18:22:07.98 ID:???
進むの速いね。新スレは975超えたら。テンプレは今と同じで。

966 :Name_Not_Found:2011/06/21(火) 19:15:40.16 ID:???
良い所な証拠だね
このスレ見てるとマトモ&優しくて涙が出るほど感動する
どんな初心者でも決して見下したりしないし、質問する側もちゃんとしてるし

967 :Name_Not_Found:2011/06/21(火) 19:45:59.51 ID:???
945 返信:Name_Not_Found[sage] 投稿日:2011/06/21(火) 11:36:05.24 ID:???
>>944
そうですか(終了)。 そもそもJavaScriptと関係があるの?

968 :Name_Not_Found:2011/06/21(火) 19:51:47.02 ID:???
ちゃんとしているはずの「質問する側」のレスも引用しないと片手落ち

969 :Name_Not_Found:2011/06/21(火) 20:02:15.78 ID:???
まあどんな初心者でもというのはウソですねw

970 :Name_Not_Found:2011/06/21(火) 20:02:25.23 ID:???
意味の分からない質問をするのもあれだけどそれを煽る人間も要らないね

971 :Name_Not_Found:2011/06/21(火) 20:04:20.92 ID:???
何もわからない初心者がアバウトすぎる質問をしたとき
他だったらもっと細かく書けってことをここの住人はドコとドコを書いてくれって言ってくれる

972 :Name_Not_Found:2011/06/21(火) 20:56:59.11 ID:???
それ一部の回答者だけだよw

973 :Name_Not_Found:2011/06/21(火) 21:13:51.92 ID:???
煽る人も一部だよ

974 :Name_Not_Found:2011/06/21(火) 21:16:32.76 ID:???
なんだかんだ「そんな良い人いねーよw」とか言いながらいい人ばかりだと思ってるわ

975 :Name_Not_Found:2011/06/21(火) 21:16:50.77 ID:???
きみはいちいち突っかかって余計にスレを荒らしちゃうタイプの人だな

976 :Name_Not_Found:2011/06/21(火) 21:23:26.49 ID:???
つ鏡

977 :Name_Not_Found:2011/06/21(火) 21:24:28.03 ID:???
ツンデレなんだよ、ここの住民は

978 :Name_Not_Found:2011/06/21(火) 21:26:26.96 ID:???
>>975
そんな感じだね
2chでは珍しくないけどここでは自重してほしい

979 :Name_Not_Found:2011/06/21(火) 21:27:14.37 ID:???
人多ければだれでもいいよ
口数多い人でも大歓迎

980 :Name_Not_Found:2011/06/21(火) 21:36:23.63 ID:???
>>975が指摘してるタイプの人は百害あって一利なしだと思ってる
傷口に塩を塗るようなことをする神経がわからない

981 :Name_Not_Found:2011/06/21(火) 21:38:29.33 ID:???
煽りじゃん、それくらいわかれよ

982 :Name_Not_Found:2011/06/21(火) 21:46:02.32 ID:???
いや煽りは理解してるだろ

983 :Name_Not_Found:2011/06/21(火) 21:48:04.21 ID:???
たしかに>>975が原因でまた荒れてますもんね

984 :Name_Not_Found:2011/06/21(火) 21:52:15.46 ID:???
必死に煽ってる奴がいるようだが、まあただの鬱憤ばらしだろうな
精神的に成長出来てない子供と思えばどうということはない

985 :Name_Not_Found:2011/06/21(火) 21:59:21.60 ID:???
NGワード「タイプ」を登録してあぼ〜ん入れとけ

986 :Name_Not_Found:2011/06/21(火) 22:00:26.03 ID:???
はきだめに何を期待してんだか

987 :Name_Not_Found:2011/06/21(火) 22:02:10.74 ID:???
自分からはきだめにすることもないだろうに

988 :Name_Not_Found:2011/06/21(火) 22:02:22.35 ID:???
まったくだ

989 :Name_Not_Found:2011/06/21(火) 22:03:39.81 ID:???
むごいと感じたら
自分が代わりに親切に答えてあげればおk
煽らんでよし

990 :Name_Not_Found:2011/06/21(火) 22:33:29.97 ID:???
教えたがり君は教えて君を招く

991 :Name_Not_Found:2011/06/21(火) 22:35:10.98 ID:???
げーんまたスレ立てられない…誰かお願い致したく。

992 :Name_Not_Found:2011/06/21(火) 22:35:56.78 ID:???
あえて放置したのに自称親切が火事を起こすとか

993 :Name_Not_Found:2011/06/21(火) 23:02:19.97 ID:???
次スレ
+ JavaScript の質問用スレッド vol.88 +
http://hibari.2ch.net/test/read.cgi/hp/1308664388/

994 :Name_Not_Found:2011/06/21(火) 23:10:20.26 ID:???
>>993
ありがトン!

995 :Name_Not_Found:2011/06/22(水) 00:11:37.13 ID:GRm3SJfv


996 :Name_Not_Found:2011/06/22(水) 00:21:11.92 ID:???
>>993はテンプレが改変されてるから立て直した方が良さげ

997 :Name_Not_Found:2011/06/22(水) 00:24:24.71 ID:???
>>996
>>3の投稿時間から察するにスレ立てた人とは別人なんだろ?

998 :Name_Not_Found:2011/06/22(水) 00:25:12.31 ID:???
FAQ無くすとかダメだろ。

999 :Name_Not_Found:2011/06/22(水) 00:25:49.53 ID:???
>>997
FAQ がないから意図的だと思うんだけど

1000 :Name_Not_Found:2011/06/22(水) 00:26:53.03 ID:???
1000


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

260 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)