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

このエントリーをはてなブックマークに追加
952Name_Not_Found:2009/04/13(月) 11:49:42 ID:???
>>937
どちらも有名なカスブロガーです。
953Name_Not_Found:2009/04/13(月) 12:10:39 ID:???
>>951
2chブラウザならwebアプリなら1日もかからない件
954Name_Not_Found:2009/04/13(月) 12:12:33 ID:???
>>953
iframeで実装すれば1分で終わる件
955Name_Not_Found:2009/04/13(月) 12:16:49 ID:???
「PHPできます」と履歴書に書くとマイナスとかなんとか
956Name_Not_Found:2009/04/13(月) 12:23:13 ID:???
949がPHP6の開発に取り組むようです
957Name_Not_Found:2009/04/13(月) 12:27:56 ID:???
PGP最強
958Name_Not_Found:2009/04/13(月) 14:20:30 ID:OKteWAxm
>>953
すげーな。
●とかbeとか、既読とかお気に入りとか、俺は一日じゃ無理だわ。
959Name_Not_Found:2009/04/13(月) 14:27:44 ID:???
>>958
そんな機能で足踏みするようならレベルが低杉
960Name_Not_Found:2009/04/13(月) 15:24:13 ID:???
https://developer.mozilla.org/ja/nsIDOMFileList
このコードをコピペして動かしてみたけど
TypeError: document.getElementById("file").fileList is undefined
とエラーが出て動作しない
仕様変わったのかな
961Name_Not_Found:2009/04/13(月) 15:50:41 ID:???
>>960
XPCOM関連でしょ、アドオンとかそっち用。
962Name_Not_Found:2009/04/13(月) 16:06:20 ID:???
Englishに変えたら
〜.fileList[0]が〜.files[0]になってた、誰か更新してあげてよ
963Name_Not_Found:2009/04/13(月) 17:10:18 ID:???
>>941
Mozilla Developer Center

>>945
==には比較の決まりがある。
その決まりに当てはまらないときはfalseと判定される。
0==null と ""==null は決まりに当てはまらないのでfalseになる。
nullは特別な値であって、未定義値と比較されるとtrueになる。

0=="" は次のような決まりがある。
まず数値と文字列が比較されたとき、文字列側が数値に変換される。
JavaScriptの暗黙的自動型変換によって、空文字列は0に変換される。
そして変換後比較したとき 0==0 となりtrueになる。
964Name_Not_Found:2009/04/13(月) 17:19:43 ID:???
>>962
試しにfiles[0]にしてみたら動くじゃねーかwwww
965Name_Not_Found:2009/04/13(月) 17:55:35 ID:???
>>963
なるほど。整理できた。ありがとう。
966Name_Not_Found:2009/04/13(月) 18:05:59 ID:???
>>964
うわほんとだ。誤情報すまん。
967Name_Not_Found:2009/04/13(月) 19:15:43 ID:???
$=function(e){return document.getElementById(e)};
for(i=0;i<5;i++){
$("test"+i).onclick = function (){alert(i)}
}
このように書いたのですがalertが全部5になります。
違う値を入れるにはどうしたら良いのでしょうか。
この例ではiは5までですが実際は可変です
968Name_Not_Found:2009/04/13(月) 19:21:08 ID:???
>>967
 for(…) { …} を
for(…) function(i) { … }(i); と書き換えるだとか。

しかし、それはJavaScriptでは基本中の基本。
あなたには「JavaScript The Good Parts」を一読することを勧める。
969Name_Not_Found:2009/04/13(月) 20:05:21 ID:???
>>968
出来るようになったよありがとん
970Name_Not_Found:2009/04/13(月) 20:07:49 ID:???
$("test"+i).onclick = function (){alert(+this.id.slice(4))}
971Name_Not_Found:2009/04/13(月) 22:04:58 ID:???
C#のフォームから下記のScriptを記入したローカルHTMLを読み込み
内部のfunctionをInvokeScriptから実行しているのですが

まず下のようなシンプルなもので試したところきちんと値が戻ってきたのですが
function test(text)
{
return("return:" + text);
}

returnの前に
var geocoder;
geocoder = new GClientGeocoder();

を追加するとGClientGeocoderが宣言されていないというスクリプトエラーが出ます
これの解決策はどうすればいいのでしょうか?

972Name_Not_Found:2009/04/13(月) 22:27:02 ID:???
GClientGeocoderを宣言する
973Name_Not_Found:2009/04/13(月) 22:29:33 ID:???
>>971
それはたぶんこっち。
(^ω^) JScript .NET スレッド Part2
http://pc12.2ch.net/test/read.cgi/tech/1194001483/
974Name_Not_Found:2009/04/13(月) 23:50:23 ID:???
>>973
スレ誘導感謝します

お目汚し失礼しました
975Name_Not_Found:2009/04/14(火) 05:04:07 ID:???
976Name_Not_Found:2009/04/14(火) 07:05:29 ID:???
>>975
これたびたびスレで勧めてる人がいるけど
サイ本持ってる人間が読む価値ある?
977Name_Not_Found:2009/04/14(火) 07:30:12 ID:???
>>976
十分あると思うよ。

サイ本よりはJavaScriptの良いところがわかりやすく解説されてる。
ベストプラクティスっぽいと思う。
978Name_Not_Found:2009/04/14(火) 07:50:27 ID:???
本は知らんが、ブログはなんか気持ち悪い。
979Name_Not_Found:2009/04/14(火) 09:51:39 ID:???
>>976
書いたのは ECMAScript 5 作業チーム 兼 Yahoo! のなかのひと
ECMAScript 5 仕様に関する記述もある
たとえば The Good Parts の 6.5 を読むと、どうして ECMAScript 5 に Array.isArray (15.4.3.2) が追加されたかがわかる
980Name_Not_Found:2009/04/14(火) 10:18:28 ID:???
>>975
まったく弾は朝っぱらから宣伝ですかw
しかもアフィページに誘導www
981Name_Not_Found:2009/04/14(火) 11:19:46 ID:???
var obj = document.getElementById('hoge');
var grep = new RegExp(obj.value, 'i');

<input id="hoge" type="text">から受け取った値を、
内部で照会するようなプログラムを作っているのですが、
*や+など正規表現で使用する記号等が入力されるとエラーが出てしまいます。
何か簡単な解決方法はないでしょうか?
982Name_Not_Found:2009/04/14(火) 11:23:18 ID:???
当たり前じゃん
RegExpに突っ込む前に、バックスラッシュでエスケープするように置き換えとけ
983981:2009/04/14(火) 11:40:36 ID:???
>>982
そのような処理をする関数は存在しませんか?
JavaScriptの正規表現に使用する全ての記号がわからないので、
1発で処理可能な関数があれば知りたかったのですが。
984Name_Not_Found:2009/04/14(火) 11:40:43 ID:???
大文字小文字無視したいだけなら、toLowerCaseして、indexOfとかすればいいやん。
985Name_Not_Found:2009/04/14(火) 11:51:07 ID:???
>>984
ありがとうございます。
早速調べてみます。
986Name_Not_Found:2009/04/14(火) 12:21:50 ID:???
textfieldで扱う文字数が5000文字くらいあったら正規表現とtoLowerCaseのどちらを選ぶべき?
987Name_Not_Found:2009/04/14(火) 12:49:22 ID:???
メモリ使用量みながらベンチとりなサーイ
988Name_Not_Found:2009/04/14(火) 13:19:45 ID:???
いやです
989Name_Not_Found:2009/04/14(火) 13:23:55 ID:???
5000文字程度なら気にする程のことないだろ。
990Name_Not_Found:2009/04/14(火) 15:13:00 ID:???
991Name_Not_Found:2009/04/14(火) 15:28:50 ID:???
>>983
MooTools 1.2
escapeRegExp: function(){
return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
}

Prototype.js 1.6.0
RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};
992Name_Not_Found:2009/04/14(火) 16:19:50 ID:TlbL8BxH
>>986
5000字あるかどうか分からないけど、一般的なブログのトップページ全体から
ある特定の文字列数種を探してspan要素で括る、っていうのを
正規表現置換でやったことがあるけど、十分短い時間で済んだよ。
993Name_Not_Found:2009/04/14(火) 16:46:55 ID:???
文字数が多ければ多いほど遅くなるのはtoLowerCaseのほう。
994Name_Not_Found:2009/04/14(火) 17:57:49 ID:???
>>993
ここで比較するべきはindexOf。それともindexOfが遅い?
995Name_Not_Found:2009/04/14(火) 18:00:35 ID:???
phpのmicrotime(true)とかjavaのSystem.currentTimeMillis()みたいのがあればな
javascriptはこの前はじめたばっかだからよくしらぬ
996Name_Not_Found:2009/04/14(火) 18:01:07 ID:???
997Name_Not_Found:2009/04/14(火) 18:02:06 ID:???
>>995
php.js
998Name_Not_Found:2009/04/14(火) 18:02:52 ID:???
>>995
new Date().getTime()
つか、このスレ内にも時間計測やってる例が出てると思うが
それくらい探してから書き込んでもバチはあたらないのでは。
999Name_Not_Found:2009/04/14(火) 18:45:24 ID:???
>>968
関数リテラルは括弧で囲めよ
1000Name_Not_Found:2009/04/14(火) 18:54:38 ID:???
関数リテラルは囲まなくていいよ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。