+ JavaScript の質問用スレッド vol.85 +
1 :
Name_Not_Found :
2011/03/30(水) 15:52:58.38 ID:V3xE9fmx
2 :
Name_Not_Found :2011/03/30(水) 15:53:39.11 ID:V3xE9fmx
【質問を書く上で】
1)「何を、いつ、誰が、どこに、なぜ、どのように」動作させたいのかを
簡潔に説明してください。ただ「動きません」ではわかりません。
脳内おれおれ用語は混乱のもと。一般的な用語を使うようにしてください。
2)調べたこと・試したことを書いてください。
OS、ブラウザ、バージョンを必ず明記しましょう。
質問箇所(行数、エラー内容)を簡潔に。
何のエラーかわからなければ、エラーメッセージをコピペ。
各ブラウザのJSコンソールを活用しよう。
3)うまく説明できない時は、ソースを貼ると回答されやすいです。
要点を整理して、エラーが再現するソースを貼ってください。
1レスで収まらない場合は、アップロードしてください。
http://jsbin.com/ や
http://jsdo.it/ なども活用してください。
4)閲覧者の迷惑になる質問は回答されません。
別窓を多数開く、閉じる・戻る・クリックを妨害、画面占有、など。
「分かんねえの?」と煽っても無駄です。
5)「初心者なので」「初心者だから」「初心者ですみません」とか
書かない方が無難です。
知らない、できない、わからない、まちがい、は誰にでもありますから。
3 :
Name_Not_Found :2011/03/30(水) 15:54:09.81 ID:V3xE9fmx
【主要FAQ】(全部は
http://fiddle.jshell.net/vSqKr/21/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 中でやるとか。
4 :
Name_Not_Found :2011/03/30(水) 15:54:30.14 ID:V3xE9fmx
閏年アルゴリズムもろくに書けないバカの集い
閏年アルゴリズムw
とりあえず知ってる言葉を言ってみたかったんだろ
前スレで一所懸命に煽ってるバカがまだいるな。 何がしたいんだ。
9 :
Name_Not_Found :2011/03/31(木) 01:50:09.06 ID:GCvyNy4q
正規表現のエスケープを解除するにはどうしたらいいですか。 \を使うエンコードです。
\\
洩れは必要になったらWikipediaで「うるう年」を検索して済ませるけど。 文句あるならWikipediaで戦って欲しいな。ここでやられるのは迷惑。 こんなものJavaScriptの知識でもなんでもないし。
オブジェクトの代入はどの言語も重いのに
13 :
Name_Not_Found :2011/03/31(木) 10:00:14.75 ID:spoa8Kr5
var time = "2000年3月09日 14時02分01秒"; これの1時間36分35秒後の日時に直す方法を教えてください
>>13 var time = '2000年3月09日 14時02分01秒';
var scan = /(\d{1,4})年(\d{1,2})月(\d{1,2})日\s*(\d{1,2})時(\d{1,2})分(\d{1,2})秒/.exec(time);
if ( scan ) {
var ye = parseInt(scan[1], 10);
var mo = parseInt(scan[2], 10);
var da = parseInt(scan[3], 10);
var ho = parseInt(scan[4], 10);
var mi = parseInt(scan[5], 10);
var se = parseInt(scan[6], 10);
document.writeln(ye+'年'+mo+'月'+da+'日 '+ho+'時'+mi+'分'+se+'秒');
ho += 1; mi += 36; se += 35;
document.writeln(new Date(ye, mo-1, da, ho, mi, se).toString());
} else {
document.writeln('parse error');
}
15 :
Name_Not_Found :2011/03/31(木) 10:38:33.49 ID:Y3wW97t0
>>14 繰り上がりのない時刻で質問してしまったのが間違いってかw
>>15 繰り上がっても問題ないよ。
繰り上がり問題を解決してもらう為にDateオブジェクトを作ったんだから。
ここ最近、内容を理解せずに揚げ足取りに終始してる奴がいるけど、 理解してる者からはバカにしか見えないぞ。
4行目から9行目までをスマートに書くことは狩野か?
解の1つが示されたんだから、後はそれを手掛かりに鋭意工夫でいいんじゃない?
var time = '2000年3月09日 14時02分01秒'; function time(time) { var scan = /(\d{1,4})年(\d{1,2})月(\d{1,2})日\s*(\d{1,2})時(\d{1,2})分(\d{1,2})秒/.exec(time); if (!scan ) return false; var a = []; for (var i=1;i<=7;i++) a[i]= parseInt(scan[i], 10); document.writeln(a[1]+'年'+a[2]+'月'+a[3]+'日 '+a[4]+'時'+a[5]+'分'+a[6]+'秒'); a[4] += 1; a[5] += 36; a[6] += 35; return new Date(a[1], a[2]-1, a[3], a[4], a[5], a[6]).toString(); }
個々人ポリシーによる書き換えだよなこれ コピペを匂わせるコードはバグの元だ、みたいな あ、ケチ付けてるんじゃ無いです、勉強になります
function hoge (time) { time = /^(\d{1,4})年(\d{1,2})月(\d{1,2})日\s*(\d{1,2})時(\d{1,2})分(\d{1,2})秒$/.exec(time); return time ? new Date(time[1], time[2], time[3], Number(time[4]) + 1, Number(time[5]) + 36, Number(time[6]) + 35).toString() : null; }
>>22 一月ずれてる。
function hoge (time) {
time = /^(\d{1,4})年(\d{1,2})月(\d{1,2})日\s*(\d{1,2})時(\d{1,2})分(\d{1,2})秒$/.exec(time);
return time ? new Date(time[1], time[2] - 1, time[3], Number(time[4]) + 1, Number(time[5]) + 36, Number(time[6]) + 35).toString() : null;
}
どうして日は1からで月は0からなのですか? 教えてエロイ人
英語圏だと月だけ名前が付いてて、配列のインデクスにしやすい為じゃねが。
もっとFizzBuzzの56バイト並みの軽量コードを書ける兵はおらんのかっ!
27 :
Name_Not_Found :2011/03/31(木) 12:18:36.49 ID:7/K68nMp
むしろなんで日だけは0からじゃないのだろう?
0は月の日数を表すから
後は、同じ形式で返す様にDateオブジェクトのget〜()で値を得て返す工夫くらいか。
30 :
Name_Not_Found :2011/03/31(木) 13:05:21.09 ID:BDHBUbWF
前スレで流れてしまったので再度・・・ ThickBox系のライブラリで、 デフォルトで画像のキャプション部分にHTMLを使えるものって、 Highslide以外にありますか? よろしくお願いします。
31 :
Name_Not_Found :2011/03/31(木) 13:09:47.78 ID:7/K68nMp
>>31 多分こういうことじゃないかな
new Date(2012, 2, 0) // 2012年3月0日(0時0分0秒) = 2012年2月末日
new Date(2012, 2, 0).getDate() // と書くと、2012年2月の日数 29 が得られる
>>30 ほとんどのライブラリがHTMLとして解釈するんじゃないのか。
title="<em>caption</em>"
確認してみ。
tiddlywikiみたいにjavascriptでファイルに書きこむのあるじゃないですか あれはどうやって書き込んでるのですか?
>>35 tiddlywikiは知らん。
しかし、サーバーサイドでデータを保存するなら、AjaxでCGIをキックすれば良いだけ。
39 :
Name_Not_Found :2011/03/31(木) 16:03:17.23 ID:7/K68nMp
>>39 言語仕様としてかなり安全性の低い設計だと思う。
でも、それがjavascriptの味だとも思うんで、べつに「ひどい」とかは思わない。
+ と ++ とか、= と == を危険視するレベルの話か。
危険ってww
こんなとこにも危険厨かよ
44 :
Name_Not_Found :2011/03/31(木) 17:51:59.44 ID:7/K68nMp
100歩譲って、1000歩譲って、マンボを踊って ライブラリとかを作って公開するんであれば、ね その関数を誰がどう使うかわからない、的な。 そういう時に、そうしてあれば、親切だねってレベルだと思う func(a){ alert(a); } ってしないで func(){ if(arguments.length < 1){ throw Error("too few arguments"); } else{ alert(a); } } ってしておくような
45 :
Name_Not_Found :2011/03/31(木) 17:52:37.81 ID:7/K68nMp
まちがえた alert(arguments[0]); です
要素は取得できてるのにstyleプロパティが消えている場合ってどういう時ですか? elm.styleがundefinedになる場合です。elmはdivとか普通のタグです。
すみません、これで1000〜9999までの数字をランダムに表示できてますでしょうか? <script type="text/javascript"> <!-- str = "0123456789"; document.write("" + str.charAt(1 + Math.floor(Math.random() * 9)) + str.charAt(Math.floor(Math.random() * 10)) + str.charAt(Math.floor(Math.random() * 10)) + str.charAt(Math.floor(Math.random() * 10)) ); // --> </script>
48 :
Name_Not_Found :2011/03/31(木) 18:26:43.31 ID:7/K68nMp
10000 * Math.random() ってしたくなる…
頭に0付けたいんなら String("000"+Math.floor(Math.random()*10000)).slice(-4) って
>>49 そんな簡単にできたなんて……ありがとうございます!
よくレス読め。 それ1000-9999の範囲じゃないぞ。
>>51 String("000"+Math.floor(Math.random()*9999)).slice(-4)
これでいけますよね?
53 :
Name_Not_Found :2011/03/31(木) 19:01:10.14 ID:7/K68nMp
Math.floor(Math.random() * 8999) + 1000 か
お前等、それ、わざとだろw
55 :
Name_Not_Found :2011/03/31(木) 19:03:28.95 ID:4SPonPYk
>52 意味不明 1000-9999ならMath.floor(Math.random()*9000+1000)でいいじゃん? ところでMath.floorとかMath.roundとかが稀に整数にならないのはどうしてなんだろう 理由がわかる人いますか? NetFrontなんだけど複数環境で経験があるし仕様なんだろうか ~~使えば100%大丈夫だしその理屈はわかるからMath.floorの実装がどうなってるのかが気になる
整数? Math.roundの期待する値は実数じゃない?
今更だが、Math.random()は0以上1未満だから1にはならないんだな・・・マジで今更だがw
質問です。
sample1 は、想定通りに画像が表示されるのですが、
sample2 は、[object HTMLImageElement]と表示されます。
sample2 で、画像を表示するにはどうすればいいのでしょうか?
オブジェクトとかそのあたりの挙動がよくわかっていないのですが、
この問題について自力で解決した場合に参考になるページなどあれば教えて欲しいです。
ちなみにプログラミング歴1年未満の素人です。
// sample1
$('#view').append(getImg());
// sample2
$('#view').append('<p>' + getImg() + '</p>');
function getImg() {
var img = document.createElement('img');
img.src = '
http://k.yimg.jp/images/mht/2011/0315_tohoku.png ';
img.className = 'test';
return img;
}
class Test { public function a() {return "a";} public function b() {$this->c();} private function c(){return "c";} } PHPのクラスをjsで書く場合はどう書けばよいでしょうか?
>>58 コードを実際に動かしていないけど。
まず、どこがいけないか。
getImg()の返り値はDOMオブジェクト。 document.createElementで作っているから。
そのDOMオブジェクトを+演算子で文字列と結合しようとしているから、DOMオブジェクトが文字列に変換されてから結合されている。
つまり、sample2の式
'<p>' + getImg() + '</p>'
の時点で、この式の値が
'<p>[object HTMLImageElement]</p>'
という文字列に評価されている。
問題の解決方法はいろいろあるし、それぞれにメリット・デメリットがあるが、jQueryを使うのなら素直に
$('#view').append('<p><img class="test"src="
http://k.yimg.jp/images/mht/2011/0315_tohoku.png " /></p>');
とでもやるのが最も簡単だろうな。
>>59 > PHPのクラスをjsで書く場合はどう書けばよいでしょうか?
意味分からん。
普通
1. PHPはサーバー側で処理される。
2. サーバー側で処理されたHTMLがクライアントに受けわたされて、javasriptはクライアントで実行される。
この2のあと、さらにPHPのコードを生成して何をしたいの?
jsでもクラスを書きたいということです
>>46 アンタ、FAQ
>>3 のQ5/A5読んでないだろ。(これが言いたかったんだ)
javascript:for(s=i="";i++<100;)s+=((i%3?"":"Fizz")+(i%5?"":"Buzz")||i)+"," これより短いコードある?
>>59 var Test = function(){};
Test.prototype.a = function() {
return "a";
};
Test.prototype.b = function() {
return this.c();
};
Test.prototype.c = function() {
return "c";
};
var test = new Test();
print(test.a()); // a
print(test.b()); // c
print(test.c()); // c
>>66 こういう書き方ができるのですね
3番目のtest.c()はprivateなので直接呼び出したらエラーみたいにしたいのですがこれはjsでは無理ですかね?
>>37 IEではファイル保存にActiveX使うはずだよ。
ActiveXで検索したら、多分簡単に見つかる。
Firefoxはわかんないけど、IEでの保存処理の近くにあるんじゃないかな。
chromeで使いたいのでちょっと頑張って作りたいと思います
>>67 var Test = function(){};
(function() {
function c() {
return "c";
};
Test.prototype.a = function() {
return "a";
};
Test.prototype.b = function() {
return c();
};
})();
// debug
var test = new Test();
print(test.a()); // a
print(test.b()); // c
//print(test.c()); // error
>>72 なんだそのコードは
cはTestに属してないじゃん
>>73 jquery prototype dojoのソースを読め
>>72 みたいなコード書くぐらいならJavaScriptでは不可能と諦めたほうがいいと思う
とっても気持ち悪いコードだ・・・
全然普通じゃんか。 関数を入れ子にする場合は、リテラルにする方が好みだけど。
お子様には理解出来ないのさ Yahooで有名なChristianHeilmannが提唱したパターンなのにディスるなんて初心者は怖いね
フレームワークの裏で動いていたり趣味でやってる分にはいいけど 実装でこんなコードはちょっとやだなぁ
そこは初心者関係無いような気がするが・・ 個人の指向性の問題だろ。 要するに、JavaScript向いてないってことだな。
PHPユーザのレベルの低さが酷いなw
PHPとか関係あるのか? JavaScriptが異端であるだけ
>>46 CSSStyleDeclarationが普通かえるけど。
それは本当に要素なの?配列じゃなくて?
あと、他のappendChildとかは?
bshのソースが、CなのにALGOL風マクロで書かれているみたいな話だよね。 それを学習して身に付けちゃっていいかというと、ちと疑問。
PHPユーザの言い訳は続くw
前スレの832で見かけたけど、 文字列を\で連結することで何行マークアップがあろうが、 document.writeを1回呼ぶだけで書き込めちゃうんだな。 知らなかったわ。 >document.open(); >document.write('<table border="0" width="100%">\ ><tr>\ ><td width="95"><a href="" target="hoge"><img src="" alt="" height="115" width="90"></a>\ ></td>\ ></tr>\ >'); >document.close(); 行毎にdocument.write書くよりよっぽどスマートだし、パフォーマンスもいいはず。 tableタグ閉じ忘れてるけどね。 これJavaScripterには常識だったりするん?
>>85 ES5 規定による。ES3 規定にはない。
ES5 がデファクトスタンダードとなるまでは実装依存。
そんなことする前に変数に入れとくわ。
\は事故の元じゃね。知らない人もいるだろうし。 >手間 置換で追加すればいい。\入れるのとほとんど変わらないよ。 俺も+で繋げるなら前もって変数に+=で繋げるかな。
改行を任意の文字列に一括置換すればいい。 + の連結が気持ち悪いならjoinするとか。 (パフォーマンス気にする人はdocument.writeを使わないと思うけど)
インデントしてると汚くなるんで使わない
obj.hoge = "なにか"; でhogeに値がセットされる瞬間にフックしたいんだけど。 unsafeWindow.__defineSetter__("hoge",function(x){ //なんか処理 this.hoge = x; //ここまずい }); ってやると無限再起でスタックオーバーフローになるます どうやれば回避できますか?
結構不評なんだなー
使ってみようかと思ってたが、これが世間の声だと思ってやめとくわ。
>>92 document.writeは、オンロード後のDOM処理とはタイミングが違うから
document.writeならではの使いどころがあると思う。
一概に言えないと思うよ。
E4X使え 火狐でしか使えないけどなww
97 :
94 :2011/03/31(木) 23:18:18.00 ID:???
>>94 の
unsafeWindowはobjの間違い
グリモン作ってるときの疑問だったもんで。
修正漏れ
document.writeを使うのって描画タイミング以外で利点とかある?
>>94 __defineSetter__の関数は何をやってるわけ?
100 :
94 :2011/03/31(木) 23:26:15.79 ID:???
JavaScriptでデザインパターンも組めない素人ばっかりなのかここ
JavaScriptでデザパタ(笑
効率悪すぎだろそれ
JavaScriptでのデザインパターンってどんなのがあるんだ?
ggrks
デザインパターンは、アルゴリズムや設計思想に 名前を付けて伝達性を向上した事に意味があるんであって、 それ以上の効果を期待すると肩透かしを食らうぞ。
107 :
Name_Not_Found :2011/03/31(木) 23:49:47.87 ID:7/K68nMp
>>106 >伝達性を向上した事に意味があるん
ああ、うまいこというなあ
たしかにそうだよな
>>94 とりあえず下のようにしときゃ動くんじゃね?
obj._hoge; // private的な変数
obj.__defineSetter__("hoge",function(x){
//なんか処理
this._hoge = x;
});
obj.__defineGetter__("hoge",function() {
return this._hoge;
});
>>108 いやエラーにはならないけどさ、、、
フック処理を追加したあとも
obj.hogeに値が設定されててほしいのさ
グリモンでプロパティの設定の瞬間をフックしたいだけで
元のオブジェクトの互換性は保ちたいわけで
>>94 obj.fuga = obj.hoge;
obj.__defineSetter__('hoge',function(x){this.fuga = x})
obj.__defineGetter__('hoge', function(){return this.fuga})
これじゃ、駄目なのかに?
そもそも、Chromeでだけど
obj.hoge = 'a';
obj.__defineSetter__('hoge',function(x){});
とすると、obj.hogeを評価しても undefined が帰ってくる
たぶん、obj.__defineSetter__でセッタを設定した時点で、obj.hogeが上書きされてアクセスできなくなってしまう。
なので、もともとのobj.hogeはどこか別のところに保存する必要があり、上のようなコードがどうしても必要になるのでは。
>>60 ありがとうございます。
そこまでは理解できました。
最終的に作りたいものでは、画像を動的に変更したいと思ってるので
関数から画像のDOMオブジェクトを返して、それをHTMLの文字列にする方法を知りたいです。
>>95 タイミングの利点は認めるけど、パフォーマンス重視でdocument.writeを選択する必然性はないような。
パフォーマンスよりも利便性をとる人がdocument.writeを使うものだと思ってた。
>>94 this._hoge_check = true;
this.hoge = x; //ここまずい
this._hoge_check = false;
で条件分岐すればいいんじゃね?
var foo = new Foo(); foo.bar().baz().qux().quux(); みたいな感じで次々メソッドを追加していくようにできませんか? それぞれのメソッドはfooに対して処理を行うようにしていのですが。
$("〜").aaa("〜").bbb("〜")みたいな形のを自分でも作りたいのですが これはどのようなコードで実現しているのでしょうか?
すいません自己解決しましたreturn thisで。いいのかなこれで・・・。 function Foo() { this.elm = document.getElementById('box'); } Foo.prototype = { foo: function(str) { alert('foo'); return this; }, bar: function(str) { alert('bar'); } } window.onload = function() { var f = new Foo(); f.foo().bar(); }
118 :
Name_Not_Found :2011/04/01(金) 14:13:57.71 ID:iyym9zmv
あってるよ
画像Aをクリックしたときに画像Bに切り替わるようにしたいと思います スムーズに切り替えたいので画像Aを読み込むときに一緒に画像Bも読み込んでおきたいのですが どのような方法でできるのでしょうか? cssで画面領域外に飛ばすっていう方法以外を模索しています
つWebStorage
Image使って変数に読み込んで置く
122 :
Name_Not_Found :2011/04/01(金) 16:47:01.28 ID:0q8zYrpb
>>121 そのやり方だとガラケーで上手く行かない
display:noneがベスト
>>122 そのやり方だと JS-On CSS-Off の環境でおかしなことになる。ベストなやり方は用途次第。
CSS-offとか無視していい
スムーズに切り替えたいなら 画像を1枚にしてstyleのbackgroundPositionをいじるのがいい
126 :
Name_Not_Found :2011/04/01(金) 19:18:25.36 ID:392SJGBQ
node.js+WebSocketの質問てここでもOK?
すまん、超初心者(ActionScript3.0は弄れる)なんだけど document.writeを指定したdivの枠に実行する方法ってどうすんの? 作ってるのはHTMLの中にFlashを入れて ActionScript3.0でExternalでJSの関数を実行させて divの所にボタンによってそれぞれ文字を書きだすコンテンツなんだけど… HTMLとJavaScriptなんてほとんど触ったことねーよ…
できねえよks
131 :
Name_Not_Found :2011/04/01(金) 20:16:49.32 ID:TshGlK1G
>>129 document.writeはそういう使い方するものじゃないからdocument.getElementByIdなりでdivを取得して
DOM操作で入れるかinnerHTMLかかな
>>131 document.getElementByIdでdivを取得...
OK、ちょっとggって調べてみる。
ありがとうございました。
ほんとJavaScript勉強しておけばよかった…
>>121 はガラケーじゃだめなのか?
そもそもガラケーサイトでJS使おうとは思わんからな
134 :
Name_Not_Found :2011/04/01(金) 21:01:18.36 ID:392SJGBQ
JQUERY の append で書いたタグに対して $(".test").click でキャッチ出来ないのですが、 append で書いたタグに対してイベントをキャッチするにはどうしたら良いのでしょうか?
後から$('.test').clickした場合にはいけるよね? 先に実行して後からDOMで追加した場合なら('.test').live('click', fn)かな
この質問多いよな、なんで順番が理解できないのか
printf("%d:%d%d", 2011, 11, 3); CやPHPのように↑みたいにJavaScriptで書く方法をお教えください
140 :
Name_Not_Found :2011/04/02(土) 00:33:17.74 ID:0SBtU03k
sprintf手作りするのって、結構以前から定番だったよね %dとかの実装が面倒で投げ出したりとか
>>141 window.location.hostとかじゃいかんの?
>>136-137 <script type="text/javascript">
$(function(){
$.get('device_list.csv', function(data){
var csv = $.csv()(data);
$(csv).each(function(){
$("#csv").append('<img src="' + this[0] + '" class="devimg" />');
})
})
})
</script>
<script type="text/javascript">
$(".devimg").click(function (){
alert("test");
});
</script>
こうやって出力したときに画像をクリックしても alert が実行されません。
書き忘れました。 IE8 です。
JavaScript で書き出した <img> ではなく、あらかじめ書いた <img> のクラス名を指定して、そのイメージをクリックすると alert は実行されてダイアログが出ました。
>>143-144 実行順序を考えろって
>>136-137 に言われたでしょ?
最初のscriptタグの$(...)はdocumentがロード完了されてから実行される。
それに対して、二番目のscriptタグの中身はdocumentのロード完了まえに実行される(厳密には違うかもしれんが、最初のscriptタグより前なのは予想されてしかるべきこと)。
だから、すでにドキュメント内にある要素にコールバックをつける$(".devimg").click(...) が意図どおりに機能していない。
.click(fn)の代わりに.live('click', fn)を使うか、.click(fn)も$(...)の中にいれるべし。
この説明で分からないなら、たぶん、「コールバック」という概念が理解できていない。
それなら、あなたにjQueryは早すぎる。
ソースで順番に書いてるから順番に実行されるものではない。 という解釈? 10年ぶりの JavaScript だから (もちろん jQuery は初めて弄る) 何もかもが初めて弄る感覚すぎて難しい。 やっぱり、記述の仕方を覚える前にいきなりサンプルを弄るのは無謀すぎたか。。。 とりあえず 最初の $(function(){...}); の中に入れる方が流れ的に分かりやすいので、これで対処しようと思います。 ついでなんですが、jQuery を学びやすいサイト or 書籍のオススメってありますか?
>>133 すまんページ跨いでのプレロードができないのと勘違いしてた
new ImageしたものをappendChildする場合は問題なく使える
>134
スムーズの意味が違うかと
エフェクト的な意味のスムーズじゃなくて読み込み無しでパッと切り替えたいって意味かと
必要に迫られてちょっと嫌々で jQuery 触ったけど、ちょっと面白くなってきた。
ちょっとだけよ
jqueryでここまでできたのですがうまく動きません助けてください $(function(){ $('#contents').html($('body').html().replace(/https?:\/\/[a-z0-9\.-]+\//i, '<a href="' + $1 + '">$1</a>')); });
jQuery使っているサイトってエラーがてんこ盛りなんだけど よくこんなんでお金取ってるよな
と、自称エリートが申しておりましたとさ
getElementsByTagNameってキャッシュ機能(?)のようなものがあるんでしょうか? firebugを使ってスピードを測っていたのですが、1回目だけ2回目以降の10倍以上の時間がかかっています。 ---------- window.onload = function() { function get() { document.getElementsByTagName('li'); } console.profile(); console.time("go"); for (var k = 0; k < 100; k++) { get(); } console.timeEnd("go"); console.profileEnd() }; ---------- 100回のループだと最大0.048msで平均が0.005msですが、 1回のループだと最大0.048msで平均も0.048msです。 これって最初だけ時間がかかってるって事ですよね? キャッシュ機能っていうのは詳しくしらないですが、 何故こういう現象が起きるのでしょうか?
実装次第じゃねーの? 短くなってるならキャッシュがきいてるだろ 速くするためにfor中ではそうなるようになってるのかもしれんし
土曜のこの時間はレベル高い人がいないから夕方以降に質問したほうがいいぞ
>>155 正確な計測ができてるとは思えんのだが
getElementsByTagNameの速度を調べるのにconsole.profileなんていらん
window.onload = function() {
function get(i) {
console.time("go" + i);
document.getElementsByTagName('li');
console.timeEnd("go" + i);
}
//console.profile();
for (var k = 0; k < 100; k++) {
get(k);
}
//console.profileEnd()
};
>>149 >>152 も同一人物?
$textNodes = $('body, body *').contents().filter(function(){return this.nodeType == 3});
$textNodes.each(function(){var $this = $(this); $this.after($this.text().replace(/(https?:\/\/[a-z0-9.-\/]+)/gi, '<a href="$1">$1</a>')); $this.detach()});
こういう感じのことがしたいのでいいの?
$('body, body *')のセレクタの正しさとか、URIの正規表現とかは真剣に検討していない。
どういうページで、どれくらいの精度で使いたいかなどによるので、自分で考えてくれ。
あと、after + detachが良いやり方かはちょっと悩む。
160 :
Name_Not_Found :2011/04/02(土) 17:27:19.52 ID:P4sLxhs1
前スレでは流れてしまったのでもう一度書かせてください。申し訳ない tp://jsajax.com/Articles/scrollablemenulinks/775 この横スクロールメニュー内のリンクで tp://colorpowered.com/colorbox/core/example1/index.html の画像表示法をとりたいのですが、 ほぼ原型ままのソースを取り込んでも画像の直接表示に飛んでしまい、かないません。 仕組み的に不可能なのでしょうが? もし可能でしたらどこを修正すればよいのかご指導いただけるとありがたいです。 よろしくお願いします。
ちゃんと見てはないけど可能だと思うよ? どんなコードを書いたのか解らないから指摘云々もないわけだが
163 :
160 :2011/04/02(土) 19:06:24.31 ID:???
>>161 失礼しました、
http://jsbin.com/ozisu5 のように記述しています。(jsは今だけ配布元のものをお借りしています)
普通にbodyにおいたリンクからは表示されるのですが、同じ記述でも
スクロールメニュー内に表示するためのvar view='<nobr>〜</nobr>'内におくとできなくなります。
lightboxで画像をクリックすると周りが暗くなる部分を作りたいのですが あればなんていう名称なんでしょうか?
決まった名前ってあるのかな? 自分はグレーアウトとか言ってるが
>>163 そもそも構文的におかしくね?
「});」が多いよ。
167 :
160 :2011/04/02(土) 19:25:57.43 ID:???
>>166 すみません(´Д`;)
実際のページそのままは載せられなかったので慌てて何箇所か削ったためです…
$("a[rel='example1']").colorbox();をする実行タイミングの問題だろ それにしてもdocument.writeとかもうちょっと何とかした方が・・・ jsajax.com/Articles/scrollablemenulinks/775 のソースはうんこだから参考に全面的に書きなおせ
多数のDOM要素を操作したい時にいちいちgetElementByIdやらで要素を取得するより、 getElementsByTagName('*')で全ての要素を取得してcache[name]のようなハッシュに、 要素を入れておく方が速いですか? やっているのを見たことがないので何か問題でもあるのかもしれないと思って聞きました。
HTMLを書き換えたら構成が変わってしまうから、それだと管理が面倒だろ
同じ関数内で複数回使うなら変数に入れるのが普通。 要素追加とかで変化するから全部のキャッシュはしたことないな。 速いか速くないかは自分の使うソースで検証すればいいんじゃない?
getElementsByTagNameなら生きてるノードリストだよ
javascriptでベンチマークをとる方法をおしえてkづあさい
ググる
全部の要素取得メモリ消費量がすごいんじゃないか?w 最近のPCから見れば微々たるもんだろうけどそれでもそんなサイトあんまりみたくないわ・・・ よく使う一分の要素をキャッシュするのは凄く分かる話なんだが・・・
>>172 それを殺して名札付けて管理するのってどお?って話なんじゃないの
179 :
160 :2011/04/02(土) 22:34:59.15 ID:???
>>178 ありがとうございます!!これがやりたかった…
とても参考になりました、感謝しています。
>>168 なるほど、勉強になります。
アドバイスを参考に書き直してみます。
180 :
160 :2011/04/03(日) 00:14:30.39 ID:n9rTGV7d
>>178 すげえ即席でつくったのか?
初心者だからうらやましい
すみません、AとBのリンクが反対になってしまいました。 A→B、B→Aです。
jQueryのanimateをはじめ各種のエフェクト系は いらない事をよくするので正直使わないほうが・・・
position:fixed指定の背景付きdiv矩形をJSからstyle.left&style.top弄って動かしてゲームを作ろうとしています そこで問題が起きたのですが styleを弄る度に動作が重たくなってしまいます 具体的には10個矩形を動かし初め20fps出てたものが1分ほど動かすと10fpsになったりします ずっと同じ位置をstyleに与えつづけても重たくなります またstyleを弄る部分だけコメントアウトして物理演算の部分だけ動かすと重たくなりません style.left;style.top;で2回で位置を指定するとsetAttribute("style","left:px;top:px;")で一括で指定するより2倍早く重たくなります 重たくなってからdocument.body.innerHTML=""で消してDOMを再度組んでやると少しだけ軽くなりますがすぐもとの重さになります しばらく止めてGCに期待してもだめです ちなみにブラウザはNet Front 3.4ですが、eajax.gc()は使えません もっとも、今回はDOMがメモリリークしているのではないかと思います いったいどうしたらいいのでしょうか? document.body.innerHTMLの代わりにdocument.writeを使って綺麗にするといい気がしますが styleが上手く効かなくなるというバグらしきがあり使えません そういえば2つの画像をたくさん切り替えたときも重たくなりました 昨日四半日ググって調べましたがわかりません 何か解決の方法を少しでも知ってる方がいらっしゃったら教えてください Canvasが使えれば一番いいんでしょうですけどね
まず服を脱ぎます。
これでよろしいでしょうか?
javascriptで特殊な配列を作るオブジェクトを作りたいのですがやり方がよく分かりません。 例えばjQueryとかだと下記のコードのようになっていて、$('div').color();のような形でFunc.prototype以下のメソッドを実行しますが、 (1)---------- $ = Func; function Func(expr) { return new Func.prototype.init(expr); } Func.prototype = { init:function(expr) { //exprを元に要素を取得 }, method: function( ){ alert('foo'); } } Func.prototype.init.prototype = Func.prototype; window.onload = function() { f = $(expr); f.method();//メソッドを実行 } ---------- 作りたい形は下記のようなものなので、
190 :
189 :2011/04/03(日) 13:42:41.54 ID:???
続き (2)---------- window.onload = function() { var f = $(expr);//fに代入されるのは要素の配列 f.method();//配列内のすべての要素に対してメソッドを実行 f[0].method();//配列内の個々の要素に対してもメソッドの実行が可能 f[1].method(); } ---------- Func.prototypeのinitの中で配列を返すようにしています。 (3)---------- Func.prototype = { init: function() { return [elm1, elm2, elm3]; } } ---------- そうすると当然fに代入されるのはFuncオブジェクトではなくただの配列なのでmethodメソッドは実行されません。 この配列に対して上記(2)のような形でメソッドを実行させるようにはできないでしょうか? Array.prototypeにメソッドを追加する事も考えたのですが、普通の配列に対してはメソッドの実行をさせたくないのと、 それをするとFuncオブジェクトを作る意味がなくなるのではないかと考えたので・・・。よろしくお願いします。
何がしたいのか確信は持ってないけど、別に Array を拡張しなくても、 Func に Array を継承させて、Func を拡張すれば良いのでは? その為の仕組みでしょ。 Func.prototype = new Array(); Func.prototype.init = function(expr) { ... }; Func.prototype.method = function() { ... };
192 :
189 :2011/04/03(日) 14:40:46.30 ID:???
分かりづらくてすみません。一応一歩前進しました。 var Func = function() { return new Func.prototype.init(); } Func.prototype = { init: function() { var ary = [elm, elm2]; for (var i in this) {//ここ ary[i] = this[i]; } return ary; }, color: function() { alert('foo'); } } Func.prototype.init.prototype = Func.prototype; window.onload = function() { var f = Func(); f.color(); } 要はFuncで配列を返して、返す配列に対してFuncのメソッドを継承させるという事です。 ただ配列に対してメソッドは継承できたのですが、配列の中身への継承が何故かできません・・・。 for (var i in this) {//ここ ary[i] = this[i]; for (var j = 0; j < ary.length; j++) {//動かない ary[j][i] = this[i]; } }
とつぜんですが、質問させてください。 JavaScriptをいちから勉強しようと思っています。他の言語どころか、プログラミングがどういうものかもよくわかってないレベルです。 そんな人間がJavaScriptをある程度使えるようになるまで、何時間ぐらい勉強時間が必要でしょうか。もちろん人それぞれだとは思いますが、よかったらざっくりとでいいので教えてください。 よろしくお願いします。
5分でalert()を覚える 3分で変数の代入の仕方を覚える 8分で配列の代入の仕方を覚える 10分でif文を覚える 10分でfor文を覚える
50秒で prototype の仕組みを覚える 20秒で closure を覚える 30秒で DOM の操作を覚える トータルでそんなに掛からないかなぁ。
JavaScriptが出来ると世界を制す 覚えとけ!
> 10分でif文を覚える 時間掛け過ぎ > 30秒で DOM の操作を覚える 無理
そんなペースでやれれば1日で全ての言語を取得できそうだなw
世界にどれくらいの言語があるか知ってるのか
>>192 最後6行のブロック
そもそも何をやりたかったのかさっぱり分からん
30言語以上使える俺でもこのペースは無理だわ
>>192 意味わからんけど配列の中身は何なの?
オブジェクトじゃないとプロパティは付加できないよ
>>192 var Func = function(arr) {
return new Func.prototype.init(arr);
};
Func.prototype = {
init: function(arr) {
var self = this;
for (var p1 in self) {
if (typeof self[p1] === 'function') {
arr[p1] = function(id) {
return function() { for (var i = 0, e; e = arr[i++]; ) self[id].apply(e, arguments); return arr; };
}(p1);
}
}
for (var i = 0, l = arr.length; i < l; i++) {
for (var p2 in self) {
if (typeof self[p2] === 'function') {
arr[i][p2] = function(id, n) {
return function() { return self[id].apply(arr[n], arguments); };
}(p2, i);
}
}
}
return arr;
},
color: function() { alert('foo'); }
};
Func.prototype.init.prototype = Func.prototype;
var arr = Func([{}, {}]);
alert(arr.color()); arr[0].color(); arr[1].color();
こんなものは継承でもなんでもないでしょ。
すみません。どれが冗談で、どれが本当のレスなのか教えていただけると嬉しいです。
205 :
Name_Not_Found :2011/04/03(日) 18:35:11.92 ID:u5LVmZxk
$("dt") .mouseover(function(){ $(this).parent().find("dd").slideDown("slow"); }) .mouseout(function(){ $(this).parent().find("dd").slideUp("slow"); }); jQueryで、dtにマウスオーバー&アウトしたら同じdlの中のddをスライドダウン&アップをさせたいのですが 一応これでも動いてはいますが、何度もマウスをdt上でロールオーバー&アウトを繰り返すと dtからマウスを放しても、残ったイベント?がずっとスライドダウン&アップを繰り返してしまいます こういう無駄な繰り返しをさせないようにしたいのですが、どうすればよいのでしょうか・・・
>>202 配列の中身はDOM要素です。一応できました。何も問題なければ・・・。
>>203 すみません。全体的に説明が分かりづらかったみたいです。
function Func() {
return new Func.prototype.init();
}
Func.prototype = {
init: function() {
var elm = document.getElementById('box'), elm2 = document.getElementById('box2'), ary = [elm, elm2], aryLen = ary.length;
for (var i in this) {
ary[i] = this[i];
for (var j = 0; j < aryLen; j++) {
ary[j][i] = this[i];
}
}
return ary;
},
color: function() {
if (this instanceof Array) {
for (var i = 0, len = this.length; i < len; i++) {
this[i].style.background = 'black';
}
} else {
this.style.background = 'black';
}
return this;
},
209 :
208 :2011/04/03(日) 19:28:22.25 ID:???
続き ---------- color2: function() { if (this instanceof Array) { for (var i = 0, len = this.length; i < len; i++) { this[i].style.background = 'red'; } } else { this.style.background = 'red'; } return this; } } Func.prototype.init.prototype = Func.prototype; window.onload = function() { var f = Func(); f.color().color2(); f[0].color().color2(); f[1].color(); } ----------
for (var i in this) { ary[i] = this[i]; for (var j = 0; j < aryLen; j++) { ary[j][i] = this[i]; } } 一体これは何が起こってるんだ・・・
どこから突っ込めばいいんだろw
212 :
208 :2011/04/03(日) 20:02:43.30 ID:???
やっぱ問題あるみたいですね。 えーとまず、var f = Funcはinitのfunctionでelm,elm2で何でもいいので要素を取得してary = []の配列に入れます。 それから、f.color();とかf.color2()のようにして、何でもいいのでinitで作った配列自身、または配列内の要素を thisとしてメソッドを実行したいので、 ---------- for (var i in this) { ary[i] = this[i]; //配列自身にFunc.prototypeのメソッドを設定 for (var j = 0; j < aryLen; j++) { ary[j][i] = this[i]; //配列内の要素にメソッドを設定 } } ---------- という感じなのですが・・・。
> 配列内の要素を this としてメソッドを実行したい まず、DOM 要素に expando プロパティを追加して、 自作オブジェクトと同じ振る舞いをさせようとする設計が、 いまいちなんじゃないか。
214 :
180 :2011/04/03(日) 20:39:40.76 ID:???
>>182 確認してくださってありがとうございます。
どうやらSafariだと(iPhoneからも)だめみたいです。(WinXP:Firefox、Opera、Safari、IE各最新版で確認 Safari以外はok)
初回は動くのですがリロードするとなぜか飛んでしまいます。
いっそリロードすんなって書き添えておこうか…
もう少し奮闘してみます。
215 :
182 :2011/04/03(日) 20:47:22.77 ID:???
>>184 レス遅くなりすみません。すごく丁寧な回答ありがとうございます!
これから各リンク読んでやってみます。 とりあえずお礼まで。。
>>214 たぶんアンカー
>>184 の間違いみたいですよ。
>>208 color: function(color) { this.style.background = color; }
var arr1 = Func([elem1, elem2]);
var arr2 = Func(document.getElementsByTagName("p"));
>>203 は配列でもNodeListでも一応動くことは動くのだが。
218 :
208 :2011/04/03(日) 20:56:49.10 ID:???
>>213 expandoプロパティでググったら、「これのおかげでページ スクリプトのバグがとても見えにくくなります」と書いてありました。
ttp://msdn.microsoft.com/ja-jp/library/bb263996 (v=vs.85).aspx
最初の設計は多数のDOM要素に対してアニメーションエフェクトをつけたかったので、より分かりやすいようにアニメーションを設定できる簡単なライブラリのようなものを作ろうと思ってました。
それで、
var n = Func('div', '#header', 'li');
n[0].color[0](1).color[2](2).color[3](3);
n[0].color[2](1).color[2](2).color[4](3);
n[0].color[3](1).color[4](3).color[3](3);
こういう風にアニメーションを設定できればいいかなと思ったんです。
メソッドの[]内が別で設定するcolorアニメーション用のオプション番号で(例えば何色から何色に変わるとか)、
メソッドの()内が1のものは同時にアニメーションが1秒間実行され、終了すると今度は(2)と設定したところのアニメーションが実行されるとか、
そんな感じです。そうしたら分かりやすいかなと思ったので。
どうしてもこの形にもっていきたかったので・・・。
219 :
208 :2011/04/03(日) 21:14:40.97 ID:???
>>217 今改めてコード見ました。すこいです!上級者のコードって全然違いますね。めちゃくちゃ勉強になります!
参考にします。有難う御座いました。
>>218 何はともあれ
> メソッドの()内が1のものは同時にアニメーションが1秒間実行され、終了すると今度は(2)と設定したところのアニメーションが実行されるとか、
この実装が相当むずかしそうに思うんだが、それはどうするつもりなの?
var n = Func('div', '#header', 'li');
n[0].color[0](3).color[2](2).color[3](1);
n[1].color[2](1).color[2](2).color[4](100);
n[2].color[3](-1).color[4](3).color[3](3);
とかにしたとき、どう動作するのが正しい仕様なんだ?
.color(...).color(...)の連鎖はつねに前から実行されるようにしたほうが分かりやすいし、実装も簡単だろ。それじゃ、どこかいかんの?
>>219 いや、DOM 要素にべたべた関数貼り付けるなんてまともじゃないし参考にしちゃダメだよ。いろんな意味で。
222 :
208 :2011/04/03(日) 22:02:32.24 ID:???
>>220 単純にパッと見の並びの問題です。色のグラデーションの他に色々つけたいのと同時に実行されるのがあった場合とか、例えば、
var n = Func('div', '#header', 'li');
n[0].color[0](1).opacity[2](1).height[3](3);
n[1].color[1](1).opacity[3](2).height[2](2);
n[2].color[2](4).opacity[4](0).htight[7](4);
基本的に前から実行してもいいのですが、上記の場合は、
n[0]は最初の1秒目でbackgroundが赤から青に変わりながら透明度が0.2になる、2秒目には何もしないで3秒目にheightが0になり消える。
n[1]は1秒目でcolorが紫から黄色になり2秒目に透明度が0.7になりながらheightが200pxになる。
n[2]は4秒目にcolor,opacity,heightが同時に変化するみたいな感じです。Flashみたいな感じにできるかなと思ったので・・・。
何秒目にどの要素でどのアクションが起こってるか分かりやすいかなと。
だからこの場合だと
n[0].color[0](3).opacity[2](2).height[3](1);
n[1].color[2](1).opcity[2](2).height[4](100);
n[2].color[3](-1).opcity[4](3).height[3](3);
1秒目にn[0]が赤から青に変わると同時にn[1]のheightが1px、
2秒目にn[0]とn[1]のopacityが0.2になる。3秒目にn[2]の透明度が0.7になりながらheightが1pxになり、n[0]が黄色から緑に変わる。
100秒目にn[1]のheightが50pxに変わるみたいな感じです。-1はfalseで実行されない。
時間を遅らせるのはscriptaclousを真似して()内の引数をとって内部オプションのdelayに設定してスタートを遅らせるような感じです。
223 :
208 :2011/04/03(日) 22:07:39.77 ID:???
あー間違えた。個別に設定した方が良かったかな・・・。 下の例は、1秒目にn[1]のcolorとn[0]のheightが変化して、 2秒目にn[0],n[1]のopacity、3秒目にn[0]のcolorとn[2]のopacityとheightが同時、 100秒目にn[1]のheightが変化しn[2]のcolorは実行されないでした・・・。
224 :
208 :2011/04/03(日) 22:33:29.54 ID:???
これですね。「Expandoプロパティを避ける」
ttp://d.hatena.ne.jp/tohokuaiki/20090630/1246351679 'Expandoプロパティというのは、
JavaScriptによってDOMに付けられた自由なプロパティのことです。
DOMにもともと存在しないプロパティも全くエラーを起こすことなくJavaScriptから付与できます。
しかし、これが循環参照の原因になります。Expandoプロパティは、通常メモリリークは起こしません。
しかし、偶発的にそして簡単にリークを起こします。'
じゃぁもう$('div').color().opacity().height();みたいな感じにするしかないのかな。みなさん有難う御座いました。
225 :
164 :2011/04/03(日) 22:34:56.15 ID:dMW+Hc6q
グレーアウトというのですね これはどうやって実装するのでしょうか?
>>222 利便性には納得できんが、興味がわいたので、明日になるかもしれんが実装してみるわ。
>>225 下の普通の要素群と、上のイメージを表示している要素の間にZインデックを指定して、div要素をおいている。
#overlay {
position: absolute;
top: 0;
left: 0;
z-index: 90;
width: 100%;
height: 500px;
background-color: #000;
}
<div id="overlay" style="opacity: 0.8; width: 1007px; height: 3071px; "></div>
というか、これくらい自分で調べられんか?
オレはGoogle Chromeで調べたが、firebugでもいけると思う。
228 :
205 :2011/04/03(日) 22:56:23.88 ID:???
>>216 わざわざ作って頂きありがとうございます!
パッと見では私には理解できないスクリプトですが、調べながら勉強させていただきます
Accordionというのも調べてみます、ありがとうございました
Firebugってどうやって使い方覚えるの?
<script type="text/javascript"> function today(){ setTimeout("today()",1000); var obj=document.getElementById("result"); obj.value=new Date();}window.onload=today(); </script></head><body><form> 現在の時刻:<input id="result" type="text" size="45"><br></form> <body onload=today>を使わないとき window.onloadを使うときこんな感じでいいですか?
231 :
208 :2011/04/04(月) 08:24:28.97 ID:???
>>226 有難う御座います。よろしくお願いします。
>>224 いちおうできたぞ。
http://jsbin.com/ihusu3/2 考えてみれば当然のことだが、作ってみてわかったことがある。
elems[0].color[1](1)
と呼ぶと、color[1](1)内のthisは、elems[0]でなく、関数の配列であるelems[0].colorになる。
そうすると、ここでelems[0]を参照するには、elems[0].colorかelems[0].color[1]に個別のデータをつけておく必要があって、これがインスタンス変数にせざるをえない。
そのために、本来、クラス変数をセットするprototypeを使ったほうが効率的なのにそうできない。
結論として
elems[0].color1(1)
とかにしたほうがマシなコードになるだろう。
jqueryのcssでプロパティを書くときはcss本来のプロパティとjavascript用のプロパティ(DOMのというべきでしょうか?)のどちらのプロパティ名を書けばよいのでしょうか?
結局のところ background-color は backgroundColor に置き換えられるんだわ。 backgroundColor を渡す方が処理側の手間が省けると思うのだが。
>>224 メモリリークを避けるのが目的にあるなら
>>232 もsetTimeoutの部分がリークパターン。
それにElementを書き換えると既存のコードがおかしくなる可能性がある。DOM Interfaceオブジェクトは残すべきかと。
何ですか?そのjavascript用のプロパティとは?backgroundColorみたいなのってどのサイトにいけば公式な情報が載ってるか教えてください
239 :
232 :2011/04/04(月) 12:00:01.59 ID:???
>>236 > それにElementを書き換えると既存のコードがおかしくなる可能性がある。DOM Interfaceオブジェクトは残すべきかと。
これはうっかりだった。ご指摘、ありがとう。
メモリリークのほうは、オレが無知だからかもしれないが、ちょっと納得できない。
setTimeoutの近くで循環参照は起きてないと思うんだが。
ただ、一部のElementオブジェクト(名前がまずいのもご指摘のとおり)は循環参照しているので、ここでメモリリークを起こすかもしれない。
やはり、jQueryとか既存のライブラリをうまく使うのが吉か。
>>239 onclickと比較してみるとわかると思う。
// リークパターン(1)
var element = document.getElementById('hoge');
element.onclick = function(){
// elementを参照しつづける
};
// リークパターン(2)
var element = document.getElementById('hoge');
window.setTimeout(function(){
// elementを参照しつづける
}, 1000);
// リークパターン(3)
var xhr = new ActiveXObject('Msxml2.XMLHTTP.6.0');
xhr.onreadystatechange = function(){
// xhrを参照しつづける
};
setTimeout(setIntervalも含む)とActiveXObjectは循環参照が形成されやすいから困る…。
なんでjavascript使ってるんですか? 厨2病なんですか? node.jsってjavascriptだとガキくさくて舐められるので サーバーサイドとかわめいてちゃってるんですか? javascript(大笑)
241 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん はい次の質問
なんでjavascript使ってるんですか? 厨2病なんですか? node.jsってjavascriptだとガキくさくて舐められるので サーバーサイドとかわめいてちゃってるんですか? javascript(大笑)
244 :
232 :2011/04/04(月) 13:24:33.13 ID:???
>>240 いや、そのどの例でも、クロージャがelementないしはxhrを参照しているけどそれはメモリリークというかな。
それは、そのコールバックが有効であるかぎり、生存し続けなければいけないオブジェクトだよね。
その後、onclickやonreadystatechangeを別の何か(例えばnull)に書き換えたり、setTimeouのコールバックが実行されたりしても、なおelementないしはxhrが生存しつづけるならそれはメモリリークだけど、実際にそうなる?
245 :
232 :2011/04/04(月) 13:27:06.00 ID:???
>>244 あ、(1)と(3)の例では参照が循環しているか…
たしかに、循環参照を回収できなければ、メモリリークがおきる可能性があるな。
>>240 (2)の場合もリークするの?
element に function への参照はないから循環はしてないよね
半角英数1000文字を格納した変数のメモリ使用量って1kbでおk?
サーバサイドJSの話題はWebProg板でどうぞ。 こちらはブラウザ上で稼働するクライアント側スクリプトの話題。 他のクライアント側スクリプト言語の話題(そんなのあるの?)は この板でいいと思うけど別のスレを立ててそれでやってください。
>>247 NO.「String 型は、0 または 16 ビット符号なし整数値("要素")の、すべての有限な序列のある
シーケンスの組である。」だから半角だろうが関係なく1文字2バイトね。
amatinpoでーーーすよろしく
251 :
240 :2011/04/04(月) 13:48:01.95 ID:???
252 :
240 :2011/04/04(月) 13:50:31.33 ID:???
過去にもこのスレが腹立たしいらしく荒らそうとした奴はいたけど、 JavaScriptでWeb製作というニーズはメジャーなので多勢に無勢で 消えていった。せいぜい目立ちすぎてアク禁ならない程度で頑張れば? 2ちゃんらしい煽りでした(笑)。
255 :
Name_Not_Found :2011/04/04(月) 14:10:55.81 ID:lK8TgFTG
>>221 DOMにプロパティを追加するのって、具体的になにが問題になるんですか?
ライブラリ的なものを作って配布するとき以外に
全部が全部よくないと言ってるわけじゃないよ。jQueryもイベント関連で扱われたDOM要素に プロパティ(数値)を直接追加して管理してるようだし。 それが関数だと、まぢかのレスにもある循環参照、メモリリークってのが付いて回る。 このことが問題視されてる内は避けた方がいいんじゃないのかね。まぁこれを無視しても 関数をべたべた貼り付けないといけないような設計自体が、まともじゃない気もするのだが。
こんにちは
こんにちは
javascript さようなら
260 :
230 :2011/04/04(月) 18:28:11.00 ID:???
230です 回答頼みます。 window.onload=today(); でも window.onload=today; でも動くのですか どっちが正しいのですか?
どっちも正しいです
>>255 他のコードで同名プロパティを使用していたら干渉する。
将来的に同名プロパティを規定したら干渉する。
データを要素に関連付ける仕様はDOM3にあった気がする。
>>247 ,254
小文字はビット、バイトは大文字。
JavaScriptの質問というよりブラウザの質問かもしれませんが、 ローカルストレージに保存されたデータってどうやって確認するんでしょうか? Cookieの一覧表示みたいな感じと同様に一覧が見れるのでしょうか? デバッグ用に必要なのでメジャーなブラウザで確認方法を教えてください。
>>260 window.onload=today; が正しい
268 :
264 :2011/04/04(月) 20:33:51.24 ID:???
ブラウザ側にキャッシュされた場合、 ブラウザからキャッシュファイルの一覧が見れますが、 そういうのが見えないかな?と思いました。 JavaScriptから確認するというわけではないです。 ローカルっていうぐらいだから、どっかのフォルダに入ってるのかと思ったのですが、 そういうわけではないのでしょうか?
>>268 ごめん。いよいよもって、何を言いたいのか分からん。
ブラウザのキャッシュの内容を確認したいということ?
「キャッシュの保存場所 ブラウザ」「IE cache viewer」「firefox cache viewer」あたりでググれ
270 :
264 :2011/04/04(月) 21:17:12.40 ID:???
すみません説明が下手で。 WebStorageってご存知ですよね?(ローカルストレージ、セッションストレージ) JavaScriptでブラウザ側に情報を(おそらくバイナリも)保存できるCookieの拡張版みたいなものらしいですが、 それの保存先を知りたいということです。 ブラウザのキャッシュファイルと同じ領域に保存されるということなんでしょうか?
271 :
264 :2011/04/04(月) 22:03:05.02 ID:???
>>119-127 あたりを見てバイナリも保存できるのかなと思いましたが、
色々調べてるうちにどうも無理っぽいことがわかりました。
画像はbase64で文字列として保存してるというわけですね。
ただのKey-ValueストアでCookieの上位規格には成り得ても、(容量は大量といってもデフォルトで5MB)
ブラウザに巨大な画像ファイルをキャッシュさせるような目的には向いてなさそうです。
というわけで自己解決しました。
すごい簡単かもしれないので質問します
手軽に画像表示させたいのですが毎回URLに入れて確認が面倒なのでボックスに文字入れ簡単に確認したいのですが
いいサンプルが見つからないので質問させてください
<img src="
http://avatar.xboxlive.com/avatar/タグ名/avatar-body.png " width="120" height="230" />
この"タグ名"の部分をテキストエリアに入力しURLに置き換えURLの画像変更表示させたいのですが方法を教えてください
文章の場合は document.write を使えばいいとわかりましたが 画像の場合置き換え方法がわかりません
あとテキストボックスの初歩的な設置方法もわからず
ポップアップで代用してます
str = prompt("タグ名を入力してください","ここに入力");
よろしくお願いします
テキストエリアのURLを取得 ↓ srcの値を書き換え こんだけ
>>273 ありがとうございます
理屈はわかってるが知識がないのでお手数ですがサンプルソース書いてくれるとありがたいです
1からかけないのでサンプル探すような手探り知識でテキストエリアの設置もわからないもので・・・
サンプルもらう以前の問題だと思うんだけどなぁ
そういや、インデントの全角スペースは 半角スペースに直さないと動かないんで、一応注意ね
>>270 Web Storageの話か。
バイナリを保存することはできるみたいだけど
- というかECMA-262の仕様からは文字列はバイナリ列なので、文字列が保存できるならばバイナリが保存できなければおかしい -
その保存したバイナリをStorageから取り出しても、ブラウザにバイナリデータ画像を表示する方法が思いつかない。
>>274 <img id="img" src="test" width="120" height="230" />
<form>
<input id="tag" />
<a href="#" onclick="document.getElementById('img').src = '
http://avatar.xboxlive.com/avatar/ ' + document.getElementById('tag').value + '/avatar-body.png'">view</a>
</form>
テンプレ変えたからこんなのも紛れてくるわな
>>277 何度もありがとう動作したがやっぱり読み込まない
>>279 確かに無茶質問でした
PC初心者に分厚い本渡すような感覚で知りたい情報がわからずグルグル無限ループだと思う
プログラムとか暗記下手だし5年やっても知識増えないし俺には向かないと思ってる
>>280 ありがとうございますJavaScript使わずシンプルにできるなんて
逆に思いつかなかった
>>281 あほらしいかもしれないがこんなことで2週間頭抱えてたんだ・・・
>>280 dataurl = "data:image/jpeg;charset=US-ASCII," + encodeURI(getAsBinary());
img.setAttribute("src", dataurl);
こんな感じでいけるはず
>>281 そうか、以前よりスレが荒れてるなと思ったが、
テンプレが改悪されてるのが原因か
では、テンプレを元に戻した方がいいのか、そっくり戻す
のではなく削除した何かを部分的に戻すのか(たとえば
>>1 は
旧版の方がよかったとか?)、そのあたり提案お願いします。
自分で調べもせず丸投げの質問もそれに答える奴も春のせいか
287 :
208 :2011/04/05(火) 10:10:44.26 ID:???
>>232 すみませんレス遅くなりました。
作って頂いて有難う御座います。
今.color_1でできるような形に変えて見てるので、もう少し時間かかります。
すみません
>>186 の質問
どうかよろしくお願いします
テンプレよくなったと思うけどな。 とりあえずこのスレ様子見ればいいんじゃね。
ギスギスした空気がなくなったな。回答が活発になった。
>>279 全角スペースを認識しないのはIEだけでECMA仕様上も問題なかったりする。
>>1 に「自分で調べない人、書かない人はよそへ行ってください」ということと
あと
>>2-4 も見ろということを入れて欲しいです。
>>288 その「重たくなる」最小限のサンプル作ってみてくれない?
自分でやってた限りではtopやleftに入れ続けても重たくならない
ので、どっかにリークパターンを使ってたりしないかと疑っている。
>>2 の3は上手く説明できない場合じゃなくて
何かしらのコードがある上で解らない場合はコード必須にすべきだわ・・・
295 :
230 :2011/04/05(火) 16:19:05.22 ID:???
市ね
297 :
Name_Not_Found :2011/04/05(火) 17:00:04.16 ID:X/nA2EFv
>>295 スタートをクリックすると時計がリセットされボタンがストップに変わりループが始まる
ストップをクリックするとスタート時刻との差分を表示しループが止まる
何がわからないのかを書けよ
質問スレなんだから
>>295 自分でどこそこまで理解したが、〜がわからない、というように説明できるようになってから質問して
>>2 は「自分で作成したコードが動かない」という前提があるから、網羅できない質問のパターンがあるんだな…。
>>295 のような解説を求める質問者用に文面を考える必要がありそう。
失礼します どうしても悩んでいることがありますのでお願いいたします。 jQueryにてファイルをアップロードするコードを書いているのですがファイルの選択にinputのfileを用いています。 ファイルを選択したら自動的にアップロードされるように $("#inputのID")..change(function () {処理内容} というコードを書いたのですがこれをChoromeで実行するとkきちんとファイルを選択すると処理が実行されます。 しかしIE(試したのは6、8です)だとファイルを選択しても何も起きずほかのところを一回クリックしたりすると(フォーカスを外すと?)実行されます。 IEでもファイルを選択すれば即座に処理できるようにはならないでしょうか? どなたかよろしくお願いいたします。
web制作初心者板でも質問したのですが質問の仕方が悪いのか、あまり回答が得られないので再度こちらで質問させて頂いてます。 複眼RSSを利用させて頂いてるのですが、取得する記事のimg src=""の中にスペースがある場合画像を取得できません。 全ての記事に空白がありこれらを削除したいと思っていて replaceを使うと削除できると言う話なのですが、画像のURLは全て違うので特定のURLを指定するのでは無く 全てのスペースだけを削除する方法はあるのでしょうか?
正規表現を使え
304 :
Name_Not_Found :2011/04/05(火) 19:13:19.89 ID:X/nA2EFv
src = encodeURI(src); こうじゃないかね
>>300 jQueryのバージョンが古いんじゃね?
http://api.jquery.com/change/ "As of jQuery 1.4, the change event bubbles in Internet Explorer, behaving consistently with the event in other modern browsers."
>>305 1.4.1だったんですが最新の1.5.2にしたら治りました!!こんなに悩んだのにそりゃないよぅ・・・
ありがとうございました!
>>301 前提条件が今ひとつ分からんが、複眼RSSを利用したままでは、たぶん不可能だろう。
複眼RSS類似の機能のscriptを組んだほうが早いし、このスレの趣旨にもあう。
その空白が入っているRSSのuriをよこせ。
回答を頂いた方々ありがとうございます。
>>304 javascriptの経験0なのでイマイチ分からないのですが、
src = encodeURI(src).replace(/src=".+?"/gi, function (a) { return a.replace(/[\s ]+/g, '');
こんな感じで使い方は合ってるのでしょうか?
>>307 人様のブログなので勝手にuriを載せられないのですが、
「えろつべ」さんです。
アダルトで申し訳ないです。
>>308 http://www.ajaxtower.jp/googleajaxfeed/lookupfeed/index2.html ここのinitializeとdispfeedを次のように置き換えれば、まぁ、近いことができる。
でも、これを思い通りのものにするには、javascriptを勉強せんとな。
function initialize() {
google.feeds.lookupFeed("
http://shane01.blog80.fc2.com/?xml ", getFeedUrl);
}
function dispfeed(result){
if (!result.error){
var srcs = [];
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var $images = $(entry.content).find('img');
$images.each(function(){
srcs.push(this.src);
});
}
srcs = srcs.slice(0, 3);
console.log(srcs);
var $cont = $('#feed');
$.each(srcs, function(uri){
$cont.append($('<img src="' + this + '" />'));
});
}else{
alert(result.error.code + ":" + result.error.message);
}
}
310 :
Name_Not_Found :2011/04/05(火) 22:09:27.43 ID:X/nA2EFv
>>308 replace以降はいらないと思う。encodeURI()はURLエンコードする関数
例えばhtmlに
<img src="
http://foo.com/bar/ero gazo.jpg">
って書かれている場合、リクエストは
http://foo.com/bar/ero%20gazo.jpg というように、空白がURLエンコードされて「%20」になって投げられる
このへんのことは普通はブラウザが勝手にやってくれてる
ちゃんと見てないけど、その複眼RSSってのはその辺の処理をしてないのではないかと予想
空白を消してしまおうとしているようだけど、実際にsrcに空白が書かれているなら
消してしまったらファイル名が変わってしまうのでアクセス出来ないと思う
目的のためにこんな面倒なことに熱くなれるエロは偉大だなあ
エロを公言してるせいか、回答が良心的だなw
あんまり調子のってるとPerl忍者呼ぶぞ?いいのか?
313 :
312 :2011/04/05(火) 22:59:49.35 ID:???
僕なんだけどさ よくRuby,PHP,Python勉強会でいじめられるんだよ なんていうか、僕ほら 2chばっかりやってるし Ruby、PHP、Pythonできないから javascriptでもなめられちゃうし 今日もさんざん勉強会でヒソヒソいわれちゃったよ Ruby厨「なんだよあいつ Perlしかできないじゃん どうする?あいつ」 PHP君「いまごろPerlって(ヒソヒソ) 仲間外れにしようぜ〜! Pythonちゃん「いいわよ Perl使いだわ時代遅れだわ いまさらPerlなの・・・」 カエレ!カエレ!カエレ! っと僕に罵声をあびせてきました 会場にいたMatzzさんに相談したんですが・・・ Matzz「あなたPerl使いですかRuby使いの相談しかうけれませんよ(笑)」 メガネが怪しげに光っていました いじめられました 僕は、あまりのショックさに会場のトイレにかけこんで2chを開きました 僕「はぁはぁ・・・苦しい 助けてだれか・・・ |Perl___| (スレッドタイトル)[検索] ポチッ!」 [ perl ]を検索しました(あと0モリタポ) 82スレ中 1〜50スレ目 0.13秒 Emacs,Ruby,PHP,Pythonを使ってるやつらがきもい - UNIX板@2ch(3) 僕「なんだこれは・・・僕と同じ考えをしてる人がいる・・・」 僕はきめました Perl忍者さんというスレッドを立てた人に助けてもらおうとトイレをでました ???「困っているのかい?君は」 僕「誰ですか?」 ???「○○忍者です よろしく 話しましょう! 何でもはなせます プログラミングとかも 」 僕「はい!!一緒にあいつらを倒しましょう!!」 ???「あの・・・ だれかいますか?」 僕「はい?どうしたんですか?」 ???「なんさい?僕は19歳です 」 僕「12歳です」 ???「もういいです」 Ruby,PHP,Pyhon「便所にゴキブリPerl使いがいるぞーー!!!」
jQueryで特定のクラスの個数を教えてくれる、 length(size)があるのですが、 非表示もしくは表示状態(display:noneでない)の個数を 教えてくれるものはないですか?
>>315 lengthは配列の個数を考えてるだけだから、visibleとhiddenで要素を選択すればいい
例えばliだったら$('li:hidden').lengthとか。
Ajaxのスレが機能してないんだけど このスレで質問していい? テンプレにAjaxの扱いを追加希望
>>317 どのスレッドのこと?
場合によっては
>>1 の関連スレに追加する必要ありかと。
Ajaxと言っても具体的にはJSかサーバサイド言語の話だから それぞれの該当スレでやればいいんじゃね
jQueryスレを分断するかでもめた問題と似てるな。 jQueryと同じでどちらに質問してもらってもいいけど、回答は任意って形に落ち着くんじゃないかな。
書籍ってそんなに少なかったっけかなぁ・・・ 一時期のブームみたいなもんで結構出た気がするんだが
function neet(){ 処理 };において onclick="neet()"はonclick="neet(null)"と同じですか?
違う
327 :
Name_Not_Found :2011/04/06(水) 07:00:54.42 ID:KuwScXA/
>>317 ,320
アマゾンでAjaxで検索したら545件ヒットしたぞ
Ajaxって言葉が何を指すのかっつーのもアレなんだけど
まあでもXHR自体はそんなに難しいわけじゃないしね
読んだXMLのばらし方や、HTMLの処理の仕方とか、事後処理の方がメインになりそうだけど
やることによってJS全般の話になるから、単独スレを維持できるほどの話題じゃないのかと
わからんことがあったら個別にこのスレで話せばいいんでないかい?
Ajaxの場合、サーバ側の処理はこっちでは扱わないから。 クライアント側での処理はXHRだしここで普通にやってるでしょ。 テンプレに何入れるという話なんだかよくわかんないな。
>>317 ここで質問してはいかんという意見はなかったし、質問するのは問題ないんじゃない?
質問用スレは敷居を高くしても仕方がないし、スレが機能不全に陥るのでなければ、なるべく間口を広くとったほうがよい。
330 :
Name_Not_Found :2011/04/06(水) 09:53:28.40 ID:586ACnDX
var cnt = xxx; cnt = cnt ? ++cnt : 1; このコードってどういうことなのでしょうか? 一瞬=じゃなくて==の誤植かなとも思ったのですが、 もしそうでなくても、分かりません。 コメントにはcntが空でない場合インクリメント、 空の場合に1を代入とあります。
コメントの通り
>>330 2行目を書き直すと
if (cnt) {
cnt = ++cnt;
}
else {
cnt = 1;
}
「三項演算子」でググれば例がたくさんでてくるので見てみたらいいよ
三項演算子はキーワード知らないとググりようないから定期的に質問が出るな
何かしたらの言語の文法やってる人なら知ってる内容だけど
と思ったけど
>>330 は三項演算子を知ってる上で
(cnt == cnt) ? ++cnt : 1;
と勘違いしたってことかな?
自分で書く時にはcnt = ++cntってやらずcnt = cnt + 1ってやるから違和感はあった
一般的にはインクリメンタルサーチっていう そのサイトのソース見るならsuggestってクラスになってる
336 :
Name_Not_Found :2011/04/06(水) 11:10:53.42 ID:4o+XyLMb
インクリメンタルサーチって 入力した端から検索実行していくって仕組みのことじゃないん? 入力した端から検索候補が出てくるのをサジェストって言うのはそうだと思う
これjavascriptじゃ無理だろ サーバがjavaで動いててローカルプログラムで検索候補を出してるんだと思う
検索候補をJSON化しておけばJSだけでも可能だと思う。
Ajax
教えて君は調べる努力をしましたか?
>>293 これを実行すると急速に位置更新にかかる時間が増えていきます
もし処理に余裕が有りすぎる場合は矩形の個数を増やして試してみてください
<html><head><script>
onload=function (){var dl=1000//矩形の個数
var D=[];for(var i=0;i<dl;i++){document.body.appendChild(D[i]=document.createElement("div"))}
var OP=document.getElementById("OP");var bw=document.body.clientWidth-12;var bh=document.body.clientHeight-12
var F=function (){
var V=[];for(var i=0;i<dl;i++){V[i]="left:"+Math.floor(Math.random()*bw)+"px;top:"+Math.floor(Math.random()*bh)+"px;"}
var T=(new Date()).getTime()
for(i=0;i<dl;i++){D[i].setAttribute("style",V[i])}
OP.innerText=((new Date()).getTime()-T)+"[ms]"
setTimeout(F,100)}
F()}
</script><style>
div{position:fixed;width:10px;height:10px;background-color:red;border:2px solid blue;}
div#OP{left:0px;top:0px;z-index:1000;background-color:white;width:auto;height:auto;}
</style>
</head><body><div id='OP'>Wait...</div></body></html>
343 :
Name_Not_Found :2011/04/06(水) 12:45:03.80 ID:4o+XyLMb
>>340 >uriの両端に空白がある場合
ああ、それは別扱いだなあ
超大雑把にかくと、こんな感じで削れるかと
src.replace(/^¥s*|¥s*$/g,"")
>>342 再現しない…だけど、var Vとvar Tの宣言をvar Fより上に移して
みたらどうかな。
>>343 いいかげん複眼RSSっていうのがどういうものか確認してから云々しろよ。
これはウェブアプリケーションで、サーバー側(おそらくPHP)でRSSを処理してから、クライアントに転送している。
そのサーバー側の処理であるURIの画像が取りこぼされているわけ。
だから、複眼RSSを使っているかぎりクライアント側ではどうしようもない。
>>344 Net Front 3.4で確認した?
オレのIE 8やChromeでも再現しなかったが、質問者は最初からブラウザを指定している。
質問者には悪いが、Net Front固有問題かもしれないし、もしかしたらデバイス依存かもしれないから、そうそうポイントをついた解答がでるとは思えない。
また、これは邪推だが、業務上のトラブルのようにも見えるので、もしそうならあまり感心しない。
net frontなんて業務以外で確認する奴いねえから仕事だな
348 :
Name_Not_Found :2011/04/06(水) 14:03:16.08 ID:586ACnDX
>>333 はい、三項演算子は見たことはあったのですが、
論理式?(真の場合の処理):(偽の場合の処理)
と理解していたので、最初のctn=ctnが論理式じゃないので
単純にctn==ctnの書き違いかなって思ってしまいました。
で、それだとしても意味不明だなと。
なぜ、
>>332 のような意味になるのでしょうか?(
>>332 なら理解出来ます。)
>>332 ならctn?++ctn:1となるのかなぁって思ったんですが・・・。
cnt = cnt ? ++cnt : 1; cnt = (cnt ? ++cnt : 1); こうすると分かりやすいかな cnt = cnt !== 0 ? ++cnt : 1;
>>348 変数一つで、「ctn」という式なんだよ。「++ctn」も式、「1」も式。
そして、三項演算子を使った「ctn ? ++ctn : 1」もまた式だから値を返す。
例えば、「var x = true ? 'a' : 'b';」なら、xには'a'が入る。
例えば、「var y = false ? 0 : 1;」なら、yには1が入る。
例えば、「var hoge = 100: var z = hoge ? --hoge : ++hoge;」なら、zには99が入る。
代入は式の右から評価される cnt = cnt ? ++cnt : 1; の場合は cnt ? ++cnt : 1; の結果が 左辺のcntに入る なので>348でctn=ctnを理論式としないで cnt = (cnt ? ++cnt : 1; ) と解釈してみて ただのcntが理論式なのはcntが定義されているかどうか、 もしくは代入された値が(undefinedとかnullとかfalse)かどうかを理論値で評価していると言う意味
352 :
Name_Not_Found :2011/04/06(水) 14:52:49.08 ID:586ACnDX
>>349 ああ、なるほど。やっと分かりました。
どうしてもcnt=cntをセットで考えてました。
ありがとうございました。
353 :
Name_Not_Found :2011/04/06(水) 14:55:25.07 ID:586ACnDX
>>351 そうですね。演算の優先順位なんて表で見てると分かっていると感じでしたが、
実際こういうのに出くわしたときに判断出来ないのでは意味がないですね。
括弧をつけてくれたらもうそれだけで分かるのですが。
asp.netでTreeViewを使用しているのですが、 これが吐いているHTMLに対してDOMで操作したいんです。 なぜか普通にgetElementsByTagName等で、吐かれている要素にアクセスしようとすると、 nullで取得できないのです。タグ名ミスではありません。 そこで試したのは、吐かれているツリーのイベントからthis.parentNode.parentNode。。。で 一番上のノードまで辿ると、このドキュメントのbody、headとは別の要素の body、headがあり、headの親ノードのnodeNameは"#document-fragment" となっていて、その上のparentNodeはnullになっていました。 普通は、"#document-fragment"のノードの部分はHTML要素のはずですよね。 "#document-fragment"とは何者でしょうか。ここにアクセスするには どうしたら良いのでしょうか。 ブラウザはIE8です。
cntが途中でctnになってるぞ。 countの略だ。
356 :
Name_Not_Found :2011/04/06(水) 18:18:03.77 ID:4o+XyLMb
auのT004という機種を使っているんですが 某サイトのコピペで <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- // 一定時間経過後に指定ページにジャンプする mnt = 5; // 何秒後に移動するか? url = "○○○"; // 移動するアドレス function jumpPage() { location.href = url; } setTimeout("jumpPage()",mnt*1000) //--> </SCRIPT> </HEAD> ということがしたくて試したところ、PCでは動作しますが、携帯では動作しませんでした 原因はなんでしょうか?auはjavaが動作しないのでしょうか?
>>356 それとはなにか違うような気がします。
読んでみたところ、DocumentFragmentオブジェクトを作成し、
その中で作成したいDOMツリーを編集、構築し、
追加したいelementにDocumentFragmentをappendChildする。。
というようなもののようです。高速にDOMを弄れる?的な。
DocumentFragment自体は追加されないようです。
treeviewは、この手法を取っているのかもしれませんが、
window.document以下に、該当する要素が存在しないというのが
今回の問題点です。例えば、treeviewは<A>タグを吐いているのは、
parentNodeで辿っている際に確認しましたが、
document.getElementsByTagName("A")で0件となります。
JavaScriptで文字列を圧縮・解凍するAPIはありませんか? WebStorageに圧縮したデータを入れたいです
deflate jsとかでググれば出るだろう
>>359 document.…だとdocumentにある要素しか取得されない
fragment = document.createDocumentFragment();
fragment.getElement…
でいい
364 :
360 :2011/04/06(水) 19:49:43.26 ID:???
JQueryのjquery-1.5.2.min.jsのファイルって、サイトでは29KBと書かれてるけど 保存すると80KBくらいになる。やり方が悪いのかな?
29KBはgzip圧縮転送した場合
367 :
208 :2011/04/06(水) 20:59:18.48 ID:PTWJP2tn
>>232 遅くなりました。いちおうできました。
http://p.tl/BdoB 理解してるのかしてないのか・・・不安ですが。変えてる内に多少ぐちゃぐちゃなコードになってしまいましたが。
-----
var fn = {
color: [
func.........., func.........., func..........
]
}
-----
を
-----
function Fn() {
this.color_0_ = func..........
thsi.color_1_ = func..........
}
-----
と変え、Element.prototype = new Fn();としました。
コンストラクタ関数とnew演算子の使い方など、理解も曖昧だったので大変勉強になりました。
有難う御座います。
369 :
354 :2011/04/06(水) 21:42:09.75 ID:???
>>363 これは名前からしてDocumentFragmentを新規に作成する関数な気がするのですが・・
実際のソースでやってみましたが、fragment.getElement〜は取得できませんでしたし、
fragment.childNodesはnullでした。
これを使ってdocumentから取得できるのかを試しにやってみましたが、
dfのnodeNameは"#document-fragment"となっていたので
これを使って作成していることは間違いないようですが、
やってみた限り、documentからも以下のコードでは参照できました。
var df = document.createDocumentFragment();
var span = document.createElement("span");
span.appendChild(document.createTextNode("test"));
df.appendChild(span);
document.body.appendChild(df);
alert("span要素は"+document.getElementsByTagName("span").length+"件です。");
document-fragment ・・・ もしかしてですが HTC とか使ってます?
372 :
354 :2011/04/06(水) 22:11:25.08 ID:???
>>371 デバッガで見てみたら、treeview.htcというのが勝手に読み込まれていました。
使っているようです。
>>354 そのうまく動かないページのモックアップを公開して、uriを示せる?
そっちのほうが多くのひとが検討してくれると思うんだけど。
>>373 このtreeviewはasp.netのサーバコントロールなので、
そうなるとIISが動かないとなのでちょっと難しいです。
>>374-375 ありがとうございます。参考にします。
純粋なJSから外れてきたので、あとは自力でどうにかしようと思います。
ありがとうございました。お騒がせしました。
>>372 昔ちょっとHTCいじって遊んだだけなんでうろ覚えなんですが、
HTCによるカスタムエレメントは、設定によっては
それぞれ独立したdocumentツリー(document-fragment)を持っていて、
通常は外部からその内容にアクセスする事は(HTC側で用意している場合を除き)
できない仕組みだったような気がします
>>377 なるほど…。カプセル化という観点から変なことはさせないというのは正しいかもですが、
困った独自拡張ですね・・・
>>354 > "#document-fragment"とは何者でしょうか。ここにアクセスするにはどうしたら良いのでしょうか。
#document-fragment から getElementsByTagName は使えないのかな。
ownerDocument で #document-fragment を参照できない?
>>346 ,347
個人的なものです
NetFront3.4はdocomoやSoftBankのフィーチャーフォンで搭載されています
これらではCanvasが使えないので一部のゲームを作ろうとしたときにあのような方法を取るしかないのです
残念ですがどうもNetFrontの仕様のような感じなんですね
しかし、他のブラウザでは大丈夫だということは次期バージョンでは解決されるかもしれないのでそれに期待しておきます
どうもありがとうございました
(できればNetFront4.1で確認して貰いたいです)
>>379 document.ownerDocumentはnullでした。
DocumentFragmentノードのownerDocumentは、上記のdocumentが入っていたので、
document配下にDocumentFragmentノードが居ることは間違いないようなんですが。
DocumentFragmentノードはnodeTypeが11のようなので、document.body以下から
再帰で全ノードのnodeTypeを調べましたが、nodeType=11はありませんでした。
結論として、やはり参照できないようです。
嘘乙!!!!!!!
384 :
Name_Not_Found :2011/04/07(木) 13:04:38.21 ID:VWy5iwP6
javascriptでphpのsleepみたいなのってどうやるのでしょうか? sleep(1000)のように関数を作って1秒待機みたいにしたいのですがjavascriptじゃ無理ですよね? phpで時間を出力して、それをajaxで取得して1秒たつまでwhileで無限ループする方法ぐらいしかないですかね
>>384 > javascriptでphpのsleepみたいなのってどうやるのでしょうか?
できてもやるな。
386 :
Name_Not_Found :2011/04/07(木) 13:11:28.86 ID:VWy5iwP6
なぜ?
>>386 1. マルチスレッドがない。
2. 画面が反応しなくなって、ユーザーが戸惑う。
3. 場合によってはブラウザがエラーか警告のようなメッセージを出す。
4. もっとよい方法がある。
5. 愚かしく醜い。
sleepはsetTimeout()すりゃいいだけ
なるほどsetTImeout()で実装してみます
>>383 一番最初の書き込みを良く読んでいれば分かることですが、
要は、そのDocumentFragmentを取得する方法を聞いていたんですが…
>>354 が最初の質問ですが、ここでDocumentFragmentを参照できているのは、
treeviewのイベントの中でのみです。必ず1度はクリック等をしないと、
treeview内の内容のチェックなりができない みたいな仕様はありえないですよね。
例えば、treeview外のボタン押下時になんらかの処理をする…と考えると。
当然、DocumentFragmentさえ取得できてしまえば、getElement〜等は使えます。
便利なjqueryプラグインを5つ以上おしえて
ランキングあったのかっ!オラ知らなかったぞ!
394 :
Name_Not_Found :2011/04/07(木) 17:15:55.90 ID:kIdBbHmX
androidのchrome liteでwindow.innerWidth/innerHeightって正常にとれますか? 拡大/縮小に関わらず常にhtmlのサイズが取れるんですが、 何か解決方法があれば教えてください。
395 :
Name_Not_Found :2011/04/08(金) 11:04:13.46 ID:UnG9sy8x
例えば、<span id=s>文字(数値)</span> この文字を取得する場合どうすればいいのでしょうか? document.getElementById('s').…???;
396 :
Name_Not_Found :2011/04/08(金) 11:13:29.90 ID:Ul/RBSR7
20110324を2011月3月24日にして表示する方法を伝授してください
>>395 document.getElementById('s').firstChild.nodeValue か
document.getElementById('s').innerHTML のどっちでも行けると思う。
>>396 function f(s){return Number(s.slice(0,4)) + '年' + Number(s.slice(4,6)) + '月' + Number(s.slice(6,8)) + '日'}
先頭がゼロなのに対処しなくてイイの?
slice使うのが遅そう
javascript:alert(100%60);で何も表示されません javascript:alert(100/60);だと表示されます javascriptでは%で余りは出せないのでしょうか?
細かいこと間がなくていいなら自分は正規表現でやってしまうわ d.toString().replace(/^(\d{4})(\d{2})(\d{2})$/, function(match, y, m, d){ return y + '年' + m + '月' + d + '日'; })
>>401 アドレスバーに入力したんでしょ?%を参照だと思っただけじゃね?
javascript: alert(100%2560)
で実行してみて
javascript:t=20110324;alert(t%100);ってうったんですがだめでした
javascript:alert(100 % 60);
>>404 君は人の話をきいたほうが良いと思うんだ。
ためしに「javascript:alert('100%60');」とやってみろ。
「100`」と表示されたダイアログがでるだろ?
これは、アドレスバーでは「%60」がURIエンコード文字だと解釈されていることを示している(「`」のASCIIコードは0x60)。
逆にいえば、アドレスバーで「%」を認識させるためには「%25」としなければならない。
結論
>>403 。
407 :
Name_Not_Found :2011/04/08(金) 12:19:38.78 ID:mSGqger9
>>404 URLエンコードでググれって
javascript:t=20110324;alert(t%25100);
が正解
%25が「%」
408 :
406 :2011/04/08(金) 12:19:53.54 ID:???
409 :
Name_Not_Found :2011/04/08(金) 12:25:21.51 ID:mSGqger9
ありがとうございます 空白と%25は勉強になりました
>>401 こうがいいな
javascript:t=20110324;y=parseInt(t/10000);m=parseInt(t/100) % 10;d=t % 100;alert(y+'年'+m+'月'+d+'日');
10-12月は?
え、2つの質問繋がってたのか
414 :
411 :2011/04/08(金) 13:18:39.52 ID:???
どこが問題ないんだよw そんな書き方するぐらいなら変数に入れる必要すらないな
javascript:t=20110324;alert(parseInt(t/10000)+'年'+parseInt(t/100) % 10+'月'+t % 100+'日');
質問混ざってるw 10-12大問題だろw
エラーコンソールしか見ない人なんでしょ。
parseInt(t/100) % 10 じゃなくて parseInt(t/100) % 100 じゃないの?
function f (time) { var day = time % 100; var month = (time % 10000 - day) / 100; var year = (time - time % 10000) / 10000; return year + '年' + month + '月' + day + '日'; } f(20111010);
parseIntなんかを第2引数を省略して教えると、8進数のバグとかやらかしそうw この例では問題ないけど。
parseIntは必ず第2引数を入れるようにしてるなぁ。警告出してもらいたいくらい。
8進数って誰得なわけ
parseIntを整数化に使ったりするから間違いを起こすねん
>>426 JavaScriptとどんな関係がありますか?100文字以内にまとめなさい。
何の人か思い出せなかったがそれか
430 :
Name_Not_Found :2011/04/08(金) 18:07:12.32 ID:mSGqger9
そんな祭あったんだねw
Data URI Schemeからイメージを作成したいのですが、 IE8で確認したところポインタが無効ですとかいうエラーが出てしまいます。 どうしたらいいのでしょうか? function changeImage() { var foo = document.getElementById("foo"); var after = "data:image/png;base64,略"; var obj = new Image(); obj.src = after; obj.onload = function() { foo.src = obj.src; } } <img id="foo" src="before.png" onclick="changeImage()">
IE8で試したけどそのコードでフツーに表示される。もう画像ファイル使えってことじゃ! IE7だったってオチは・・似てるし。
jQueryやprototype.jsのスライドエフェクトで、 例えばスライドアップというエフェクトがあり、 エフェクトの高さを操作しある要素を消すといった場合に、 エフェクトが終了してから一瞬元の大きさに戻り、消える、という現象が起こります。 この原因は何故なのでしょうか?
png だからね。サイズが大きすぎるんじゃ?
437 :
Name_Not_Found :2011/04/08(金) 22:18:26.76 ID:NjltqHd+
指定した座標にある要素を取得するにはどうすればいんだろう? 全部の要素の表示領域を走査するのは重くなるし。。
438 :
Name_Not_Found :2011/04/08(金) 22:21:56.04 ID:NjltqHd+
それかbodyにリスナ追加して、event.targetとか。
441 :
432 :2011/04/09(土) 02:58:21.31 ID:???
>>433 >>435 レスありがとうございます。
>>435 さんのおっしゃる通りサイズの小さい物で試したらエラーはでませんでした。
IEではサイズ制限のようなものがあるのでしょうか?
参考になるドキュメントや何か回避する方法があれば教えていただけませんか?
442 :
432 :2011/04/09(土) 05:57:44.29 ID:???
ブラウザの種類を増やして、サイズ変えたり書き方変えたりして調べたところ、 全てのケースで期待通りだったのがFirefoxで、 Chromeは大きすぎるイメージではどうも無理っぽく、 Operaは20kb程度でも、適当なところで改行して文字列を繋げてやらないと無理っぽく、 IEでは少しサイズが大きくなるだけで(20kb)無理なようでした。 どうしてもImageオブジェクトを作成する必要があるのですが、 大きな画像(といってもせいぜい100kbで640*480以下)のData URI Schemeから、 どのブラウザでもImageオブジェクトを生成する方法はありませんでしょうか?
444 :
432 :2011/04/09(土) 07:15:10.33 ID:???
>>443 どうもありがとうございます。
その説明だと30kbぐらいなら平気そうですね。
20kbでだめだったのはなぜなんだろう・・・
>Imageオブジェクトを作る理由ってなんだ?
引数にImageオブジェクトを渡すルーチンを使用したいからです。
具体的にはCanvasのdrawImageメソッドです。
445 :
432 :2011/04/09(土) 07:16:56.86 ID:???
すみません訂正です。 >その説明だと30kbぐらいなら平気そうですね。 base64は元のサイズの30%ほど増しとのことなので、 もっと少ないですね。 それでも20kbは下回りませんが。
>>444 var img = new Image(); img.src = URL;
とか、隠しフレームなどに画像を読んでgetElemntById()などで
Imageを取り出すとかでは駄目なの?
448 :
Name_Not_Found :2011/04/09(土) 09:25:01.38 ID:dRIzeTjK
要素の画面上の座標を取得するにはどうすればいいですか?(ドキュメント座標ではありません) event.clientX/clientY みたいなプロパティです。
449 :
432 :2011/04/09(土) 10:03:17.18 ID:???
>>447 杞憂だとは思うのですが、ゲームを作っていて画像をかなり使う予定です。
全体の容量としてはそんなに多くはないのですが、数が多いため、
新しいセッションでまた始める場合、
再読込の必要がある可能性もあるので、サーバの負荷を心配しています。
画像はブラウザが勝手にキャッシュしてくれるとは思うのですが、
コントロールができないので、いまいち信頼できなくて、
Data URI Scheme形式ならクライアント側にJavaScriptで任意に保持取り出しもできるので、
画像ではなくData URI Schemeを使おうかなと思った次第です。
心配するほどアクセスがあるわけではないですが、
万が一許容負荷や転送量を超えてサーバを停止されても困るので、予防措置といったところです。
>>449 GIF自体、フォーマットによってかなりサイズが変わるから、GIFのフォーマットを研究してみるのはどう?
452 :
432 :2011/04/09(土) 10:34:23.08 ID:???
>>450 アドバイスありがとうございます。
GIFは全然考えてませんでしたが、いじってみたいと思います。
>>451 ありがとうございます。
初期のリクエスト数を減らすためにすでに考慮しています。
関連性がないものまで統合してしまうと管理が大変なので、
どうしても多くなってしまいがちです。
利用しているjqueryのバージョンと動作確認したブラウザとバージョンを書く癖をつけましょう
455 :
450 :2011/04/09(土) 12:01:32.44 ID:???
>>452 ごめん。マジごめん。
PNGとGIFをいい間違えた。二回も!!
疲れているらしい。
でも、GIFを試してみるのも良いと思う。
456 :
432 :2011/04/09(土) 12:56:21.01 ID:???
みなさん色々アドバイスありがとうございました。 色々いじってたところ解決しました。 画像データをbase64encodeして、 JavaScriptの変数に入れ直した物をファイルで吐くようなプログラムをPHPで書いてたのですが、 その部分の改行コードがLFになってて、 改行コードをCR+LFで統一したら解決しました。 IEでも20kbのファイルで正常に表示されました。 さすがに200kbはだめでしたが、エラーはでなくなりました。 細かい画像だけData URIでキャッシュして、大きい画像だけとってくるようにしたいと思います。 しかし改行コードが混ざるだけで、こんなエラーが出るとは知らなかったです。
>>455 この類のイージーミスは、オナヌーのやり過ぎ。
これ、豆知識。
2つの画像を交互に表示 var flag=false; function disp() {setTimeout("disp()",5000); var obj=document.getElementById("boy"); if (flag){obj.src="boy2.gif";} else {obj.src="boy1.gif"; } flag=!flag; } window.onload=disp; でvar flag=false;をflag=!flag;で反転させる系のプログラムは 最初にflag=trueまたはflag=falseにするのは何か基準があるのですか?
460 :
459 :2011/04/09(土) 17:04:52.61 ID:???
最初にflagにtrueかfalseを代入するときどっちでもいいと 思うのですが、trueからとかfalseからなどの決まりはあるのですか?
> document.getElementById("boy"); ガチムチ系のにほひ…
>>463 そのページでいえば send() の引数を利用するのがいいんじゃないかな。
onreadystatechange = function() { (function(引数) { })(); }
とかでも渡せそう。泥臭いが。まぁsend内のスコープのを参照できるので
>>464 のでいいけどw
いやアホなこと書いてたw できねーなw
function send(arg) { onreadystatechange = funnction() { alert(arg); // これじゃだめなのか } } あ、ちなみにonreadystatechangeに引数付けた場合に 何が来るかは知らないので確認してからね
functionで関数作るのとprototypeで関数を作る違いはないと認識してよいでしょうか?
いいえ
>>468 何いってるのかよくわからない。コード書いて。
誤爆?
あるエレメントを包む方法ってありますか? たとえば、 var tmp=document.createElement("div"); で要素作るじゃないですか? この要素をあるdiv要素で包み込みたいんです。 ↓こんな感じです。 <div class="wrap"> <div class="tmp"> </div> </div> tmp.innerHTMLにいれてもtmpの中しか書き換わらないし、困っています。 皆さんのお力をお貸しくださいませ
wrapの方もcreateElementで作ってappendChildでtmpを追加すれば良さそうだけどそれだとダメなの?
>>475 なるほど!
いけそうですね!ありがとうございました!
createElementしたあといつもどうしてたんだろう?
せめて自分で2〜3日考えてから質問しろよ
>>478 そのレスをするのに2〜3日考えてみようとは思わなかったの?
きっとそのレスをする必要があったかどうかわかるはずだよ
>>479 そのレスをするのに2〜3日考えてみようとは思わなかったの?
きっとそのレスをする必要があったかどうかわかるはずだよ
オウム返ししかできないほどに図星をつかれたようだ
まあでも不思議な話だよな。 createElement()をする発想があるのに、その後それをどうするつもりなのか。 appendChild()とセットだろうに。
innerHTMLしか知らなかったんではなかろうかw document.getElementById('wrap').innerHTML = document.createElement('div').outerHTML;
485 :
はげくん :2011/04/10(日) 13:47:15.59 ID:???
>amachang 今粛々と民事刑事の方面で進めています。一応、すべて証拠として保存しなければいけないので、冗談でも今はこのスレに変なこと書き込まないでください。
>2011/01/28
http://hibari.2ch.net/test/read.cgi/prog/1291518728/ >1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・
> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
あちこちの板にたくさんマルチすんな
488 :
Name_Not_Found :2011/04/10(日) 18:43:05.70 ID:ygrX8eRn
urlの末尾についているハッシュを無効化する方法をご教示ください。 /index.html#footer というページを読み込むときに、 <div id="footer"></div>へ遷移しないでページの最上部で普通に表示したいです location.hashという項目をいろいろググってみましたがうまくイメージできません よろしくお願いします
location.hash = "";
490 :
Name_Not_Found :2011/04/10(日) 18:57:31.85 ID:ygrX8eRn
どうもありがとうございます。 urlに#が残ってしまうのですが /index.html# #をトルツメするにはどうしたらよいでしょうか?
hashchange を preventDefault してもいけそう。 ハッシュ値を削除する理由が思い浮かばないけど、どういう状況なんだろう?
document.location.href.replace(/#/$,''); >492 サンプルpls
アンカーで#topまで戻ったときにハッシュが付いてるとかっこ悪いから取りたいって事かじゃないかね
document.location...
496 :
Name_Not_Found :2011/04/10(日) 23:35:14.14 ID:+HBIE4jS
prototype.js の Element.hasClassName()のコードなんだけど、 RegExpオブジェクトの正規表現は '\\b' + className + '\\b' じゃ駄目なんですか? マッチの結果としては同じものになりそうな気がするんだけど…気になって眠れません。 hasClassName: function(element, className) { if (!(element = $(element))) return; var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); },
class 名に使用できるのは、単語文字だけに限らないから、 class 名の両端が単語境界になるとは限らないし、 class 名の両端以外に単語境界が現れるかもしれない。
498 :
Name_Not_Found :2011/04/11(月) 00:11:08.98 ID:76KlzRHl
>>497 即レスありがとうございます。
とても分かりやすいご説明ありがとうございます。
CSSと正規表現をもっと勉強しないと駄目ですね><
499 :
459 :2011/04/11(月) 02:55:03.14 ID:???
ライブラリについて質問 function getDivTop(div){ if(typeof window.crypto!="undefined" && typeof window.getComputedStyle!="undefined"){ return parseInt(div.style.top); }else return document.layers? div.top:(div.offsetTop||parseInt(div.style.top)||div.style.pixelTop||0);} レイヤの位置(Y軸方向)の取得 するそうなんですが <div id="layer1" style="DISPLAY: none;POSITION:absolute;LEFT:80;TOP:40;"> </div>のときどんな感じで使うんですか?
なんかのイベントハンドラに登録
外部ファイルのパス書くときに、意図的に type="text/javascript"を省略することってある?
結構しっかりしたとこが受注してる大手サイトとかjs解説系のブログでも見かけるんだけど
<script src="
http://xxxxxxx/jquery.xxxx.js "></script>
忘れてるだけなのかなあ?
>>502 HTML5 では省略可能だから省略するな。
>>502 必要ない、HTML4でもデファスタで省略可、蛇足
WebGLやVBS使わないのなら書いただけ無駄、ソースの解読性も落ちる
HTMLで<br>を<br />って書くかより無駄
505 :
Name_Not_Found :2011/04/11(月) 13:15:33.02 ID:/JE9niIp
>>504 スレ違いだが、要素の終了タグはないと困ることあるんじゃね?
XHTMLだとパースエラーになるんじゃ
>>505 だから「HTMLで」って書いたんじゃない?
510 :
505 :2011/04/11(月) 14:19:28.14 ID:9ZItSFMG
511 :
502 :2011/04/11(月) 14:34:01.32 ID:???
xhtmlとhtml5では省略していい(すべき)ってことでいいのか?
513 :
502 :2011/04/11(月) 15:00:23.09 ID:???
らじ。
xhtml はガチガチすぎたから HTML5 はゆるくいきましょう宣言
要するにアホが多いWeb屋にあわせたと言うことですね
>>514 厳密な位で丁度いいよな。
機械処理にはそっちの方が都合がいい。
どうせ手で書かないんだし、手で書く奴は厳密さを楽しんでるしw
仕様が厳密でもブラウザ側の実装があいまいだから 間違ってても普通に表示されるというのも原因な気がする
xhtml は blockquote 直下にはブロック要素しか置けないとかのルールを知らない人が多い そのルールに従ってなくても表示されるのがなぁ。。。
>>516 オレもゆるくする意味分からない派。
どうせ、W3Cのチェッカ通して出た指示に従って修正するんだから、むしろチェッカが厳格に動作、かつ警告・エラーメッセージが詳細になるように作ってくれたほうがよい。
521 :
Name_Not_Found :2011/04/11(月) 20:22:28.14 ID:9ZItSFMG
>>520 容認できるかどうかはアレだけど
HTML4までは、リソース保存のためのデータ形式だったから厳密であるべきだったわけだけど
HTML5は、ウェブアプリケーションの上っ面構成ツールなので、見えりゃ何でもいい的な感じです
ってか、スレ違い甚だしいですなw
522 :
520 :2011/04/11(月) 20:49:54.35 ID:???
>>521 なるほどねー。WebCLの話とか聞くと、WWWの方向性について考えてしまうな。
そのうち、「クォータニオンによってモデル化することによりハードウェア最適化を助け…」(超適当)みたいなことを考えられないと、「JavaScriptが使える」といえなくなるのかしら。
なんとかJavaSriptの話に着地。
window.onloadが呼ばれるタイミングってjsにも依存しますか? 例えばヘッダで重い処理をするjsが読み込まれていたらonloadが呼ばれるタイミングは遅くなりますか?
ブラウザによる部分もあるけど type属性にtext/うんたらって入れてるなら textがどう読み込まれるかを解釈すればいいと思う onload属性よりwindow.onloadのが重いイメージ
>>523 window.onload は外部ファイルを読み込むものすべてに依存する。
defer属性つけていたら別だけど未対応ブラウザもあるから過信は出来ない。
return parseInt(div.style.top);が javascript lintでエラーが出ます。 return div.style.top;とするとエラーが出ません。 parseIntは文字列を数字に直しますが、div.style.top に入った値を数字にすることは文法的に誤りなのですか?
基数を指定しろ、という warning しか出ないな。
なんでHTML5で仕様が柔らかくなるのか理解できないやつや、使われてもない意味ない仕様にシコシコ従ってるやつはHTMLを勘違いしてる HTMLの各要素は「意味」なんだよ「機関」じゃない HTMLが解釈されるときはそのまとまりの意味が解釈されるべきであって、決まったピースを組み合わせるようにして解釈すべきじゃないんだよ ブラウザ側が意味が理解しやすいように仕様は決められているわけだが、無くても問題ない部分はHTMLの性質上省略してもいいんだよ むしろそっちの方が「言語」として自然 HTMLはJavaScriptより英語や日本語に近い「言語」だ それを忘れるな
530 :
Name_Not_Found :2011/04/12(火) 07:58:08.11 ID:uRqARNN8
次。
もう全部省略すればいい。<html>すら省略しても表示されるんだしw
あるエレメントに情報を保存したいと思ってるんだけど、 使う予定のない、name属性にその値を保存しとくって方法ってどうですか? 値を保存する専用の属性とかがあれば教えて下さい。
俺はrel=””に格納してる
無い属性書いてもattributesで参照できるよ。
>>533-534 ありがとうございます。
無い属性書いても大丈夫なのは知りませんでした。
やってみます!
ってそれはパーサーの処理時間が増えるな
ホームーページビルダー3使ってます ジャバスクリプトを外部ファイルにして読み込む場合だけ自分でメモ帳で書きたいんですが <html> A <head> B </head> C <body> D </body> E </html> F A〜Fのどこに挿入したらいいですか?
べー
>>537 そう言う釣りはもういいから
答え:E
はい、終了
デカイ口をたたく割にはEを選んでる時点でお前は初心者
>>540 そう言う煽りはもういいから
答え:E
はい、次の方
マジレスするとF
初心者の質問にちょっと毛の生やした初心者が答えるから荒れるのです
まーたあのニコ生のやつがきてんのか
>>539 その回答は釣りなのかマジで言ってるのかハッキリしてくれないか!
本当に迷惑ですね 答えはC
迷惑この上ないね。 外部スクリプトは出来るだけ早く読み込んだ方がいいんだよ。従ってAが正解。
マジレスすると 他のスクリプトやDOM準備との順番を気にしなくていいならどこでもOK
質問してる奴の自演が酷いな
>AFってどこに挿入したらいいですか?
>>532 HTML5 なら data-* 属性がある。HTML4 なら
>>265 新しい属性を作るのはお勧めしない。HTML4 の仕様上動作が保証されてないからどんな不具合が起きても文句は言えない。
いつものかまってちゃんにレスする奴がまだいたとはな
>>526 JSLintは文法エラーだけを検出する訳じゃない。
…ってこれ何回目だ。テンプレに入れた方がいいのか?
556 :
Name_Not_Found :2011/04/12(火) 15:32:25.05 ID:joiKeRZX
RPG作りたいんですけどマップって a = [1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, ] みたいに1のところが通れて、0のところが通れない みたいにして作るものなんですか? もっといい方法ありましたら教えてください
JavaScript以前の問題だから別スレへどうぞ
ウケる
マップと同じ大きさのモノクロ16階調のGIFを用意して、その階調が高さを表現する 今居る座標から隣り合う座標へ移動する際、階調の差が2以内なら移動可能 高さが必要無ければ2bit GIFで良い もし移動が8ドット単位なら、元のマップの8分の1の大きさで良い あとはてめーで考えろカス
質問です -webkit-transformと-webkit-transitionで 針がアニメーションするアナログ時計を作ってみたのですが 例えば秒針の角度を秒数×6度から出すと 59秒から0秒になった時に逆回りのアニメーションが表示されます これを回避する方法はないでしょうか
<input type="file"> の参照ボタンあるとおもうんですが このボタンをgetElementByIdで取得することはできないでしょうか?
セキュリティ関係で_
name属性付けての参照ならできた覚えがあるけど
>>531 HTMLなら標準仕様で省略できるよ
>>532 属性じゃないけど、setUserDataとか
>>561 そのまんまですが、 secondsが0と1の時に
角度360→transition無効→角度0→transition再設定→角度6
やってみると描画タイミングが絡むので若干ややこしい処理になりますね。
角度を0に戻さず単純に 360, 366, 372,,, と増やしていく方法もいいかも知れません。
検索したらこんな簡潔な技が紹介されていました
http://www.paulrhayes.com/2009-03/an-analogue-clock-using-only-css/ -webkit-transition: -webkit-transform 600000s linear;
-webkit-transform: rotate(3600000deg);
600000秒かけて10000回転させるだけ。スクリプト殆ど不要。
文字列を数字に直す場合evalとparselnt の違いってなんですか? evalはJavascriptのコンパイラに渡し、コンパイルしたものを実行 するので結果実行速度が非常に遅くなるので使用しないって Javascript Good partsに載っていました。 はevalとparselntの代用なのですか?
eval は例外的 と覚えておけ
ったく 誰だよeval創った奴
そのうちES5 Strictが主流になってevalは使えなく…ならないかな。
eva便利すぎるw
evalが無くなったらJavaScriptの大きな強みが1つ無くなるだろ JavaScriptってのは固いシステム向けの言語じゃない 柔軟過ぎるくらいが調度いい 別に初心者がevalをやらためったら使いたがってもいいじゃないか
javascriptプログラマってどの程度のサイト作れたらなれますか? ざっくりでいいです。 もしくは、同等のレベルのサイトを教えていただけるとたすかります。
javascript1本で食ってくには相当スキル必要だと思うが・・・
evalが無いと無くなる強み(できなくなること)って何さ。 JSONだってevalするんじゃなく解析して取り込む方向でしょ。 good partsに従えとかは別に言わないんだけど厨房なコードは 批判されていいと思っている。
ただの懐古趣味だろw
読みこみ中のときのくるくるーっていうロード中の表示のやつって jqueryに標準でついてますか? それとも自分で画像を回してるだけですか?
jqueryはスクリプトファイルです 画像は添付されておりません
ロード中を知らせるのはいいんだが それにわざわざ画像を使うのは理解できないわ
あんなのどうやって作るかよくわかりません。 四角形なら作れますが、丸とか台形とかの図形って描けますか?
勉強しろとしか言いようが無い
>>585 GIFだったんですか!?
やっぱりjavascriptだけだと無理がありましたかね。
ありがとうございました。
>>586 いや無理じゃないけど
結構高度だよ(少なくとも面倒)
俺は画像で実装してるサイトしか知らん
>>582 同意
でもユーザからすれば画面の状態が認知し易いんじゃね?
普通にステータスバーでいいとは思うけど
ロードアイコンとかいらんから普通に画像表示しろよと
>>566 境い目で処理変えてみても不自然になるんですよね
分数も合わせてやると表示のタイミングによってはグルグル回るし
一瞬その手でいいかと思ったけど分針とズレるか
そこら辺は妥協するしかないかなー
PHP使えばいいんじゃね?
591 :
Name_Not_Found :2011/04/13(水) 17:25:08.40 ID:KXfN5Qvt
クリックでテーブルのソートをさせたいのですが
http://www.scriptiny.com/2008/11/javascript-table-sorter/ td2行で一組で動かしたいです。
---------------------------------
[番号][日付][タイトル][チェック]
---------------------------------
[番号][日付][タイトル][チェック]
[本文本文本文本文本文本文本文]
--------------------------------
[番号][日付][タイトル][チェック]
[本文本文本文本文本文本文本文]
--------------------------------
↑こういうの
修正するのはjs側のソースでしょうか、htmlでしょうか。
>>591 希望がよくわからないけどHTMLもJSも修正する必要がある気がする。
ソートくらい自分で組もうよ
>>575 >>576 よくわからんがjavascriptで生きてくレベル?
ガンダムで例えてくれ
ついでにバキキャラで例えてくれ
596 :
591 :2011/04/13(水) 17:54:49.00 ID:KXfN5Qvt
>>592 番号順、チェック済みかどうか、でソートさせたいのです。
>>593 js弄った事なくて、、
ヒント頂けると助かります。
>>596 JavaScript知らない人がヒントもらっただけで作れるような案件ではないと思う。
599 :
591 :2011/04/13(水) 18:04:36.26 ID:KXfN5Qvt
>>597 そうでした。。
1行目と2行目のtrをhtml側でどうにかまとめらないかなと思ったのですが
見当違いでしょうか?
>>599 1つのtd内に、2行1列のテーブルを入れたらいけるかも
603 :
591 :2011/04/13(水) 18:21:09.31 ID:KXfN5Qvt
[th][th][th] [td][td][td] [ td ] [td][td][td] [ td ] の [td][td][td] [ td ] これをひとつのテーブルにするという意味でしょうか? そうすると一つの要素でしかソート出来なくなってしまうのですが、 すみません理解力不足で。 詳しくお願いします。
604 :
591 :2011/04/13(水) 18:25:38.13 ID:KXfN5Qvt
ええと2行目は<td colspan="5">です。
>>603-604 面倒だからthead,tbodyは省略するけど、こういうこと。
<td>
<table>
<tr><th>タイトル</th></tr>
<tr><th>本文</th></tr>
</table>
</td>
>>605 ごめん。本文もthになってたので訂正。
<td>
<table>
<thead><tr><th>タイトル</th></tr></thead>
<tbody><tr><td>本文</td></tr></tbody>
</table>
</td>
colspan="5" でソートするってどういうことだ?期待する結果が全くわからない。
608 :
591 :2011/04/13(水) 18:45:49.41 ID:KXfN5Qvt
>>606 ありがとうございます。
[タイトル][タイトル][タイトル][タイトル][タイトル]
[ 本文 ][ 本文 ][ 本文 ][ 本文 ][ 本文 ]
になってしまうと思うのですが、
本文を連結させるのは不可能でしょうか?
>>608 連結したら [日付] や [タイトル] の区別がつかなくなると思うんだけど、何を基準にソートしたいの?
a
611 :
591 :2011/04/13(水) 18:56:04.80 ID:KXfN5Qvt
>>607 すみません、、
[要素1][要素2][要素3][要素4][要素5]←th
[要素1][要素2][要素3][要素4][要素5]┐
[あいうえおあいうえおあいうえおあ ]┘ひとつめ
[要素1][要素2][要素3][要素4][要素5]┐
[かきくけこかきくけこかきくけこか ]┘ふたつめ
[要素1][要素2][要素3][要素4][要素5]┐
[さしすせそさしすせそさしすせそさ ]┘みっつめ
thの要素をクリックで二行一組ソートさせたいのです。
612 :
591 :2011/04/13(水) 18:57:49.47 ID:KXfN5Qvt
>>609 1行目の日付順、タイトル順などを基準にソート、
本文はそれにくっついてます。
>>589 ん、ダメですか?ちょっと書いてみました。
角度が減った場合に +360°しています。Hoursは省略。ChromeかSafariで。
<head><style type="text/css">
div { position:absolute; width:1px; height:300px;
top:0px; left:150px; border:1px solid black;
-webkit-transition:-webkit-transform 0.3s linear; }
</style></head>
<body><div id="Seconds"></div><div id="Minutes"></div><div id="Hours"></div>
<script type="text/javascript">
function setClock(name) {
var prevDeg = 0;
setInterval(function(){
var hand = document.getElementById(name);
var time = new Date()["get"+name]();
hand.innerHTML = time + name;
var deg = prevDeg - prevDeg%360 + time*6;
if(deg < prevDeg) deg += 360;
hand.style["-webkit-transform"] = "rotate("+deg+"deg)";
prevDeg = deg;
}, 1000);
}
setClock("Seconds"); setClock("Minutes");
</script></body>
598に同意 丁度、同じ作りの既存ライブラリが無いと無理っぽい
素人に付き合う奴らヒマ過ぎ
テンプレ変えたから丸投げでも誰かが答えてくれるよ! やったね!
自分で調べて作れないなら金払って作ってもらえよ 1〜2万で1日で作ってもらえんぞ
>>612 [タイトル]ってのは「タイトル」という名前のセルではなくて、ユニークな項目名が入るのね。
初めからサンプルを書いてもらえれば誤解しなかったんだけど。
HTMLでは無理なのでJSを自作してね。
>>611 これって2行1組じゃなくて
[あいうえおあいうえおあいうえおあ ]とか
[かきくけこかきくけこかきくけこか ]とかだけソートすればいいんじゃね?
<link>にアクセスするにはどうのようにすればいいのでしょうか? <markers> <marker name="名前"> <link href="リンク1" /> <link href="リンク2" /> </marker> </markers> var markers = xmlDoc.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var name = markers[i].getAttribute("name"); var links; // ここでlink href="**" を配列に入れたい
そのコードを理解してるなら、できるじゃんw
<div id="y2"> 天上天下唯我独尊 </div> idを取得して擬似的に天上天下唯我独尊と 書かれたy2レイヤーとして扱うのってWeb制作ではよくやるんですか?
623 :
Name_Not_Found :2011/04/14(木) 06:40:19.79 ID:24gdBs3F
624 :
Name_Not_Found :2011/04/14(木) 12:44:21.63 ID:oJGXVa2v
function read(){ return "abc"; } var prot = function() { this.test = function(){ return read();} var read = function(){ return "def"; }; }; var hoge = new prot; alert(hoge.test()); とすると、"def"がアラートされると思うんですが、 hogeの中にread()がない場合、グローバルのread()が実行されてしまう訳ですが、 ローカルのread()だけを呼び出すように明示する方法はありませんか?
prototypeで宣言しろよ
そのローカルのreadがないのにreadを呼び出しちゃった時は どうなればいいの?
627 :
Name_Not_Found :2011/04/14(木) 12:59:53.56 ID:jn8Gb6a7
ローカルがないからグローバル呼ばれるのにローカルを呼びたいと言っている…。 ?
628 :
Name_Not_Found :2011/04/14(木) 13:10:36.96 ID:oJGXVa2v
レスありがとうございます。文章が変でした。
>>625 prototypeで宣言とはどういう事でしょうか、どこの事でしょう?
すみません。
>>626-627 エラーです。
ローカルのreadがなかった時にグローバルのreadが呼ばれるのが嫌なんです。
エラーか…えーと… わかったで!正解はこれや! this.test = function(){ return (window.read != read && read)(); };
this.read = function(){ return "def"; }; this.test = function(){ return this.read();}
あるいはローカル変数をオブジェクトにでもまとめて明示的に var local = { read: function(){ return "def"; } }; this.test = function(){ return local.read();} なんてことにしたらどやねん
>>632 ありがとうございます。
やっぱりこれが良いのでしょうか。JavaScript難しいです。
そもそもローカルスコープにないreadを呼び出す実装がおかしい ローカルしか呼びたくないならローカルにあることが保証されているreadだけを呼び出すようにすればいい
>>634 >ローカルしか呼びたくないならローカルにあることが保証されているreadだけを呼び出すようにすればいい
そうするためには、どう呼び出せばいいんでしょうか……?
すみません。読み方が足りなかったです。 read();と書くからには、ローカルスコープにread()を定義しておけって事ですね(ですよね?) ローカルスコープのread()だけを呼べるように明示することはないが、 きちんと実装していれば良い、というのが結論でしょうか。皆さんありがとうございました。
質問です。 function _hoge() { } のように関数名の前にアンダーバーを付けてるコードを(色々な言語で)よく見ます。 コーディング規約的なものだと思いますが、どういう意味なんでしょうか?
privateスコープとpublicスコープを区別する為にJSではそう付けてるなぁ俺は。 アンダーバー付いてたら直接呼ぶなよ!・・と。
Jquery の質問スレでも質問したのですが、人が少なそうなのでこちらでも質問させて下さい。 Jquery の slideToggle でコンテンツをおりたたみたいのですが、ブロック要素を float させていると開いたときにサイズがぴったり合わず、サイズオーバーしてガタついてしまいます。 例えば以下のような場合です。div や dl でも同様です。良い回避策はないでしょうか? -- HTML -- <div id="toggle">Toggle</div> <div id="body"> <ul> <li>コンテンツ1<li> <li>コンテンツ2<li> <li>コンテンツ3<li> <li>コンテンツ4<li> </ul> </div> <script type="text/javascript"> //<![CDATA[ $(function() { $(".toggle").click(function(){ $(this).next().slideToggle(); }); }); //]]> </script> -- CSS -- #body ul li { float: left }
#body ul li{ float: left; width: 200px; display: block; } だとどうなる?
>>641 すいません。自己解決しました。
slideToggle を実行する前に高さを設定するとサイズピッタリでアニメーションしました。
スレ汚しごめんなさい。
>>640 script 部分に追記
<script type="text/javascript">
//<![CDATA[
$(function() {
$(".toggle").click(function(){
// 高さを設定する
$(this).next().css('height', $(this).next().height() + 'px');
$(this).next().slideToggle();
});
});
//]]>
</script>
>>640 まず、js中の".toggle"は"#toggle"だね。
ChromeとFirefoxでは問題なく動く。IE8でだけがたつく。
回避法としては、HTML上で<div id="body">の前に空のDIV要素<div />を入れ、それにともなってスクリプト中$(this).next()を$('#body')にかえる。
「IE8 jquery slideDown」とかでググルと関連する事象についてのページがある。
>>642 その解決だと、少なくともオレの手元のIE8だとスライドしなくなるみたいだけど、それでよいの?
javascriptのjavaの部分の発音ってジャヴァ?ジャバ?ジャヴア?
ハバ
ジェイブア
ヤバ
Javascriptで人の作ったプログラムを勉強に読んでるけど return 式で式に改行いれてたり ifを{}でくくってなかったり、規則違反がいっぱいあるな
動けばいいんだよ
>>650 言うと思った
確かに、無駄が多いとか、汎用性がないとか言ったところで
動かないことには話にならない。
例えばif式;
式;
式;
return 式;のときは
if{式};
式;
式;
return 式;のときと
if{式;
式;
式;}
return 式;のどっちか分かりずらいときあるから括弧は欲しい。
後で読み返すときに分からんようになるやん。
そこらの本に書いてある事を一々いわなんでよろしい
653 :
Name_Not_Found :2011/04/15(金) 06:55:31.83 ID:/fIcBuor
655 :
Name_Not_Found :2011/04/15(金) 09:40:02.39 ID:ijDsTdny
俺は
>>651 が分りづらいというかそもそも読めない。
規約違反とか言う奴はstripモードでやれ JavaScriptは基本一人で書くものだから自分が読めて動けば何も問題ない WEBアプリ規模を多人数で作ろうとするときに初めて問題になる というかWEBアプリ作ってるやつに朗報 docomoの夏からのガラケーがフルブラウザの機能を拡大するらしい つまりNetFront3.4から4.0や4.1にバージョンupするとすると一部のHTML5が使えることになる もしWEBアプリの主要なAPIに全部対応したらガラケーがガラケーじゃなくなるな 所詮ガラケーとスマホの違いなんてアプリの差しかないわけだから
ストリップモード…?
strict?w
ドコモって最近はクッキー食えるの?
ifを波括弧で囲わないのが規則違反とか情弱か
情弱っていうかただのヴァカだろ
662 :
Name_Not_Found :2011/04/15(金) 14:55:18.72 ID:W+CUKsOa
すみませんおまいらさまたちおしえてくださいおねがいします。 jqueryつかって、フェードさせたいので、初めてjsを書きました。 $(function(){ $('#navi a img').hover( function() { $(this).stop().animate({"opacity":0.1}); }, function() { $(this).stop().animate({"opacity":1}); } ); }); hoverしたら薄くなるのですが、、、逆に、imgを常にopacity0.3くらいにしておいてhoverしたら1にするには どう書き換えたらいいでしょうか。おしえておくんなまし。
すみません。。。自力でできました。。。 ためしにかいたのが間違ってて、ちょっとなおしたらOKでしたorz
初めて書いていきなり質問って全く自ら学ぶ気なんてないな
>>664 書いてみたんだけど、エラーはいちゃって、見当違いのことやってんのかなって思ったんだす。
先生いないもんで聞く相手いなくてさ。サーセン。
>>666 $(function(){
$('#navibtn a img').css({"opacity":0.7});
$('#navibtn a img').hover(
function() {
$(this).stop().animate({"opacity":1});
},
function() {
$(this).stop().animate({"opacity":0.7});
}
);
});
これで正しいのかわかららんけどちゃんとブラウザでうごいたからだいじょうぶだべ。
$(function(){ って ready を省略した形式なのね。 初めて知った
$(function(){ } のなかに書くとonload=と同じ動き これ豆な
onload と ready は同じ動きじゃないよ 前者は画像とか全て読み込むまで発生しない。 後者は DOM が構築された時点で発生。
釣りにマジレスすんなよ
document.write('<style type="text/css">\n'+'body{background-color: #ffccff;}\n'+'<\/style>');} ってサンプルプログラムにあったんだけど '<\/style>'って'</style>'でも動くけど\って何でつけてんの? 何か意味あるの?
正規表現と混同してんじゃねーのと思ったけどtext/cssはそのままやん
それ本当はシングルクオートじゃないだろ
誤動作を防ぐため?とか勝手に思ってる。 </script>で強制終了?
<script></script> の中に </ という文字列が出現してはいけないから 外部スクリプトなら関係ない
みすったもういい
え、"</"でアウトなん?
document.documentElementは document.documentElement.clientWidthとかで使いますが if(document.documentElement)〜という プログラムがあるのでブラウザによって document.documentElementで真と偽になるってことですか? ie8とfirefoxは真になりました。 偽になるのは古いブラウザなどですか?
明日はカレー
うちはハヤシライスだぜ!
685 :
Name_Not_Found :2011/04/16(土) 01:20:07.39 ID:IyuIJlyV
clickで開いて、mouseoutで閉じるのは可能ですか? <SCRIPT language="JavaScript"> <!-- flag = false; function pullDown() { if(flag) smenu.style.visibility = "hidden"; else smenu.style.visibility = "visible"; flag = !flag; } //--> </SCRIPT>
>>681 </script>にだけ気をつけてればいいと思ってました
てことは if( hoge</fuga/.test(piyo) ) {...}
なんて書いてたとしたら文法違反になっちゃうのか
でも実際 </ だけで誤動作(正常と言えるけど)するブラウザあるのかな
var Box = function(size){ this.size = size; }; Box.prototype = { color: "red" }; var box = new Box(10); //alert(box.color); // red document.write(box.color+"<br>"); Box.prototype = { color: "blue" }; //alert(box.color); // red document.write(box.color+"<br>"); var box2 = new Box(11); //alert(box2.color); // blue document.write(box2.color+"<br>"); Box.prototype.color = "yellow"; //alert(box.color); // red //alert(box2.color); // yellow document.write(box.color+"<br>"); document.write(box2.color+"<br>"); prototypeについて なんか挙動が全然分からん教えてください
>>685 可能
>>686 それ以前に、if (hoge < 0) でも
検証ツールを通したら、scriptタグの中に < なんか書くなよボケ って言われる
>>687 newしたらprototypeの中身がコピーされて返されるってことじゃないの
仕様読んだことないんで実際どうかは知らんけど
new Box(11); の11って何ですか?何を表してるのですか?
var obj = { color: "red" }; var box = obj; obj = { color: "blue" }; alert(box.color); // red var box2 = obj; alert(box2.color); // blue obj.color = "yellow"; alert(box.color); // red alert(box2.color); // yellow 難しく考えない。仕組みはいたって単純。
693 :
685 :2011/04/16(土) 03:13:44.77 ID:IyuIJlyV
本当は<や&なんて記号を使うのは好ましくない script.innerTextとかで確認すれば解るけど全部自動でエンコードされてる
。
var hash = { hoge: 'hoge', fuga: 'fuga' } for (var i in hash) { alert(hash[i]); } なんでこれhash.i じゃできねえんだ? くそだな ごみじゃね?
hash.hogeで参照できるのにhash.iでできねえとかふざけてるな hash{i}ならperlでいうハッシュでわかるがhash[i]でいいのか?配列みたいだが
698 :
Name_Not_Found :2011/04/16(土) 11:15:39.08 ID:BdWthHQp
Perlの{} [] の使い分け、用途により色んな記号だらけ、いくない(笑) ちなみに hash.i は hash['i'] と同等。 i と 'i' の違いは分かる よね、Perlでも同じだから。おっとPerlでは $i だったな。
どう考えても、ふざけてねぇだろw
>hash.hogeで参照できるのにhash.iでできねえとかふざけてるな 超うける
>>696 独り言は掲示板に書き込まずチラシの裏にでも書いとけよ、な
>>696 JavaScript は雑魚が使う言語じゃなかったの?
君は Perl だけを一生使っていればいいよ
703 :
Perl忍者lvl4 ◆M5ZWRnXOj6 :2011/04/16(土) 13:26:39.15 ID:B/lGKijW
雑魚とか覚えてる時点で相当悔しかったようだなw
↓これをそのまま文字として表示するにはどう打てばいいですか? &lt; <
エスケープすればいいよ
全角で打ってますが&lt;を半角で打ちたいんです。 そのまま打つと変換されちゃうので。
document.body.appendChild(document.createTextNode('<'));
変換されちまった document.body.appendChild(document.createTextNode('<'));
&amp;lt;
テキストボックスの文字数を取得してるのですが、 onkeypressだと日本語に変換中の時(アンダーバーが出てる時)は、 イベントを拾ってくれません。 日本語を変換中にキーボードが押下されたかを調べるにはどうすればよいでしょうか?
ごめんなさい!解決したのでもういいです!
変数に代入するときに {} で括るとオブジェクトになるの?
>>713 なにその半可通な理解。ちゃんとJavaScriptの構文を勉強しなよ。
大した量じゃないんだからさ。
715 :
Perl忍者lvl4 ◆M5ZWRnXOj6 :2011/04/16(土) 15:29:09.72 ID:B/lGKijW
いちいち変数使うとき+ xxx +みたいにやってごみみたいだな ${xxx}や$xxxみたいにできればいいのによ + +で連結するのめんどくせえんだけどどうにかならないの? $("#img").append("<a href='"+k.a[i]+"'>"+k.a[i]+"</a><br>"); これを<a href="${k.a[i]}">${k.a[i]}</a><br> くそだなほんと
相変わらず自分の無知を棚に上げるんだな
パーラーなんてそんなもんよ パチンコすることしかとりえがないのよ
何でActiveX使ってないのに出て来るんだよ
722 :
Name_Not_Found :2011/04/16(土) 16:41:49.11 ID:POOcrT1J
>>721 すみません…自分でも調べてみますが
サイト通りにコピー貼り付けして
htmlファイルを作成してクリック…しているだけなのですが…。
ちょっと私もいろいろ引き続きやってみます。
ローカルでテストしてる?アップロードしてテストしてる? ローカルでテストしているならアップロードしてからテストしてみて それで違う結果が得られたら答えはその中に
724 :
Name_Not_Found :2011/04/16(土) 16:46:43.24 ID:POOcrT1J
>>723 ローカルでテストしてます。
早速アップロードしてみます!!
725 :
Name_Not_Found :2011/04/16(土) 16:51:53.14 ID:POOcrT1J
fc2ブログにアップロードしたら 情報バーでませんでした>< 有難うございましたぁぁ><;; テストしない私は情けなくてだめだめですね;;有難うございました><!
726 :
Perl忍者lvl4 ◆M5ZWRnXOj6 :2011/04/16(土) 17:00:20.99 ID:B/lGKijW
発 者 同 . 。_ ____ 争 生 同 .じ . /´ | (ゝ___) い .し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、 .な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j .い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´ .! ! か の / ´..:.} >、、___, .r、 ソ、`\ / ..:.:.} / |∨ ` ̄ / ..:.:./ | 丶 / _、 ..:.:.:.{ .{.:.:. \ { ..:Y .ゝ、 {.:.:.:.:. ヽ |、 ..:/ 丿 .:〉 >.- ⌒ . ヽ / {. ..:./ ソ ..:./ .( ..:.:.:` ..:} ./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:} ./..:.:/|.:/ {.:./ X.:.:}.} X X /..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y . __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\ /.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
>>719 ドメイン名がアンダースコア使えないからじゃね。知らんけど
>>727 ドメイン名にハイフンもRFC違反だった気がする
730 :
Name_Not_Found :2011/04/16(土) 17:14:24.48 ID:N02FN3o6
自分のタブが前面で開かれている間のみ スライドショーをするなどの処理をしたいと考えているですが タブが前面で開かれている/開かれていないの判断ってjsでできますか? mobilesafariとchromeliteで動くものを考えているのですが、 PC用のブラウザで動作するコードでも試してみますのであれば教えてください。
テキストボックスの文字を var area=document.getElementsByTagName("textarea"); var tmp=area[0].value.length; var lengthelement=document.getElementById("strlength"); lengthelement.innerText=tmp; こんな感じに関数を作って、keydownイベントが発生するたび 表示させてるんですが、 1文字目を入力したときはなぜか数字が0になってしまいます。 2文字目を打つと1になってしまうんですが考えられる原因は何でしょうか?
keypressかkeyupじゃダメなの?
じゃあ明日中目黒ドンキ前に集合か
keypressでも同じようなことがおこってしまいます。 keyupは論外です。
setTimeout
>>731 ,734
理由:keydownで入力確定してないから。keyupが論外なら諦めなさい。
ヴァカだろ死ねよ!!
女の子がそんな言葉使うなよ。
一つのページに作れるエレメント数の限界ってありますか?
自分で試してみたら?
ヒントとかうざいからさっさと答えかけよ
>>730 モバイルはわかりませんがとりあえずPC用ブラウザなら、
onblurで停止、onfocusで再開
とかでなんとかなるんじゃないでしょうか
746 :
Name_Not_Found :2011/04/17(日) 01:10:05.55 ID:16WL+vrJ
>>743 ちょっとわからないので詳しく教えて貰えませんか?
thisがイマイチ使い方が分かりません 教えてください
質問が漠然としすぎるのも困る
最近はonLoad="〜"を使用せずwindow.onload=〜を 使うようになってきたって本当ですか?
せやな、同じだけど
onChange じゃいけんのん?
<html><head> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> <script type="text/javascript"> //lesson2.htmlを改造して1秒ごとに関数onButtonClick()を呼び出した。 var xmlhttp; function httpHandler(){ if(xmlhttp.readyState == 4 && xmlhttp.status== 200) { document.getElementById("date").innerHTML=xmlhttp.responseText;} } function onButtonClick(){ try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); document.getElementById("hantei").innerHTML=("Msxml2.XMLHTTP");} catch(e) {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); document.getElementById("hantei").innerHTML=("Microsoft.XMLHTTP");} xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.onreadystatechange = httpHandler; xmlhttp.open("GET", "lesson2.php"); xmlhttp.send(null);} window.onload = function() { timerID = setInterval("onButtonClick()", 1000);} </script></head><body> <div id="hantei"></div> 現在時刻は<span id="date">・・・</span>です<br/> </body></html>
753の続き Microsoft.XMLHTTPは動作速度がよいわけではなく、 より性能のよい(パフォーマンスのよい)Msxml2.XMLHTTPがあり Internet Explorer 6以降で利用できるとサイトに載ってので IETesrでやってみるとie6〜8でMsxml2.XMLHTTPでした しかし、ie5.5ではMicrosoft.XMLHTTPのはずがMsxml2.XMLHTTPでした。 これはietserののバグですか? それともie6以前でもMsxml2.XMLHTTPが利用可能なんですか?
keydownの人、ヒントを書いたのに。setTimeout(hoge, 0)で別スレッドで実行するようなイメージで
呼べば、イベント内で同期しないような感じになるから、正常にカウントされる。
されない場合があるのかどうかは知らんが。内部どうなってんのか分からんし。
>>753 ActiveXオブジェクトは、ブラウザに内臓されてるようなものじゃないし、
PC内に入っていてActiveXが呼べるなら使えるんじゃないの?
ActiveXオブジェクトはプラグインみたいなものなんですか?
ggrks!そう。
"hantei"が"hentai"に見えた
自己紹介はいいから
760 :
Name_Not_Found :2011/04/17(日) 08:36:17.04 ID:T/e8+Km9
以前、本とか扱ってるシステムの仕事で HANTEI_manga、HANTEI_novel、HANTEI_video、…って変数作ったら コード見た発注元の会社の人に怒られたことあるなあ すぐに向こうの勘違いだと気づいて、お詫び電話掛かってきたんだけど 気まずかったw
というつくり話だったのさ
docomo夏モデルのフルブラウザ
ttp://up.fileseek.jp/3h9K47dB webkitベースということでNetFrontLifeブラウザかと思ったがなんか違うっぽい
まあ最低Canvas2Dは満足に使えるようになるだろうからだいぶWEBアプリ作りが楽になるね
ガラケーってよくよく見てみたらジャイロとかコンパスとかiPhone並に積んでる機種結構あるから
案外今のAndroid以上にHTML5と相性がいいのかもしれないね
っていうかHTML5に完全対応すればガラパゴスじゃなくなるね
フィーチャーフォン
ところで立体視対応のCanvasモードはないのだろうか
3D対応の端末がこれからどんどん出てくるし、3DSやらで表示させるのにもいいと思うのだが…
753 ミスった 下から10行目のxmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); がいらんかったな lesson2.phpの中身はこれ <?php print date("H:i:s"); ?> phpでたった3行で時刻表示できんだな。
?>いらない
>>753 Msxml2.XMLHTTPに対応しているかどうかは、
MSXML3に対応する製品がインストールされているか否かが問題であって、
IE6以前かどうかとは1対1の関係ではないらしい。
http://support.microsoft.com/kb/269238/ja >>763 時刻表示させるだけなら、そんな面倒臭いことしなくていいよね。
単なる一例ならちゃんとそう書こうね。
<html>
<head><script type="text/javascript">
function hoge() {document.getElementById("date").innerHTML = new Date();}
setInterval(hoge, 1000);
</script></head>
<body>現在時刻は<span id="date">・・・</span>です</body>
</html>
>762 >立体視対応Canvas これ俺も欲しいと思うんだけど こういうのってどこに言ったらいいの?
W3の年会費払って加入すればどこに言えばいいのか判ります 年会費は3万程度なので一般的な収入の方なら問題ないですね
ワンダー3とな
769 :
Name_Not_Found :2011/04/18(月) 16:32:35.47 ID:G7nYpevP
質問です。 複数のチェックボックスでその中の幾つがチェックされているか を取得するにはやはりforでやるしかないでしょうか?
まるで他の方法がイメージできてるような聞き方じゃないか。なにを使いたいんだい?
for文以外に方法があるなら わしもしりたい
しか、なさげだよなぁ。 IEでXHTMLならXMLパーサーに読み込ませてselectSingleNodeでxpathで イケそうな気もするが、コストがどうなんだろう…っていう。
ほー簡潔だ。
>>769 どういう理由でそう言った疑問がわいたのか知らんが
見習いたいもんじゃ
776 :
Name_Not_Found :2011/04/18(月) 17:01:07.48 ID:3xjLOpg/
図書館APIの
ttp://calil.jp/doc/api_ref.html の結果例にもあるような
callback({
"session": "11a285036112525afe32b1a3d4c36245",
"books": {
"4334926940": {
"Tokyo_Setagaya": {"status": "OK", "reserveurl": "
http://libweb.tokyo.jp/123 ",
"libkey": {"玉川台": "貸出可", "世田谷": "貸出中", "経堂": "蔵書なし"}}
},
"continue": 1
});
の結果を$.getJSONを利用してうまく取得したいのですが、
booksの中の4334926940以降がうまく読み取れない。どうしたらいいのですか?
これは興味深い。 階層構造へアクセスするメソドはJSONでも同じだぜ?
Canvas APIの質問はこちらで大丈夫ですか?
780 :
772 :2011/04/18(月) 17:17:33.53 ID:???
>>778 jQueryの内部実装でfor文を使っている、ということがいいたいの?
そういう意味なら、そりゃ使っているでしょうね。
回答:forでやるしかありません
じゃぁ、なにを意図したかだな。冗長だなーと思ったのか、コストなのか。
784 :
Name_Not_Found :2011/04/18(月) 17:26:52.92 ID:3xjLOpg/
>>782 回答ありがとうございます
「Scriptタブ」での方法気が付かなかった
ちょっとやってみます
785 :
782 :2011/04/18(月) 17:59:16.94 ID:???
あ、分かっていると思うけど「Scriptタブ」は「Scriptタグ」の誤記ね。
すまんかった。
>>783 インタラクティブ性を気にするのなら、あらかじめ各チェックボックスのchangeイベントにカウンタを操作する動作を仕込んどいて、個数を使いたいときはのカウンタの数値を使うのがスマートだろうな。
チェックを変更するごとにちょっとしたコールバックが走るので、トータルの計算コストはユーザーの操作に依存して増える可能性があるけど、この場合にそこまで気にするのはバカげているだろう。
>>762 document.querySelectorAll(':checked')
こんなのは?
これのlengthでなら・・・
checkedセレクタ自体がCSS3からだから古いブラウザは無理だけど・・・・
excanvasって書き方次第で動くときと動かない時があって不便だな 処理を関数化したのがいけないのかよくわからないけど 1つずつ書かないとうまく動かない・・・ コードは長くなるし読みづらくなるし困ったにゃー
html内のselectタグを数えれば? for文使わずに正規表現でw
791 :
Name_Not_Found :2011/04/18(月) 20:53:53.77 ID:JCreChEk
>>789 selectじゃなくてinput type="checkbox"な
それは勘違いだろうが、htmlコードからそれを抜いたところで
checkedかどうかはわからんぞ?
name属性とか使って配列で返してくれたりしたら便利そうだよね getElementsByName('hoge')[0].checkdみたいにさ selectなんかもそうだけど、もうちょっとフォーム周りのアクセスが容易になったらいいなとは思う
793 :
Name_Not_Found :2011/04/18(月) 21:27:00.85 ID:JCreChEk
えっ
おい、HTML5対応ブラウザと非対応のブラウザを判別ってJavascript でどうやるか教えろオッサン
796 :
Name_Not_Found :2011/04/18(月) 22:16:58.20 ID:JCreChEk
<section>とか作ってみればいいんじゃね?
無いものを呼べよ
定義済みオブジェクトと予約オブジェクトってどう 違うんですか?
168 名前:Name_Not_Found[sage] 投稿日:2011/04/02(土) 19:35:03.68 ID:??? $("a[rel='example1']").colorbox();をする実行タイミングの問題だろ それにしてもdocument.writeとかもうちょっと何とかした方が・・・ jsajax.com/Articles/scrollablemenulinks/775 のソースはうんこだから参考に全面的に書きなおせ
半島のかたでしょうか? ニホンゴでおねがいします
仕事ではなく趣味でGreasemonkeyとか簡単なスクリプトをちょっと書いたりしたいんだけど、 javascriptを、そこまで深くではなくても良いから、基礎的に学びたい場合のオススメの本とか無いですかね? 一応シッカリした作りのモノが良いのだけど、何というか情報系の学生が最初に手をつけるような感じので。 多言語はCの基礎的な部分のみ、くらい
こんな本ありますか? ↓ これでどうですか ↓ これ良さそうですね、ありがとう ↓ いえいえ 作者の自演乙w
見えない敵と戦ってるみたいですが、どうしました?何か嫌なことでもありました?病院紹介しますよ
たしかにjsだけ特化してちゃんと書かれた書籍ないね ニッチすぎるとかいうことは置いといてもさ
replaceの、置換前の文字に日本語(2バイト文字)がある場合、どうやって指定すればいいんでしょうか? var hensu = document.evaluate('//text()',document,null,7,null); for(var i=0; i<hensu.snapshotLength; i++) hensu.snapshotItem(i).nodeValue = hensu.snapshotItem(i).nodeValue.replace(/置換前文字列/ig,"tikango"); と指定しても置換されなくて・・・(tikanmae等だと置換される
>>808 置換にそういう制限はない筈だけどな。
文字コードは何にしてる?
"置換前文字列".replace(/置換前文字列/ig,"tikango") を試してみればええのに
>>804 毎回サイ本薦めればいいんじゃね?
テンプレに入れてもいいと思う
>>808 >>809 も指摘しているように文字コードに原因がありそう。
エスケープすれば文字コードは関係ないけど、jsファイルの Content-Type を指定してもいいと思う。
var str = '\u7F6E\u63DB\u524D\u6587\u5B57\u5217';
str = str.replace(/\u7F6E\u63DB\u524D\u6587\u5B57\u5217/ig, 'tikango');
alert(str);
サイ本はぶ厚くて高いし、初心者には無理があるでしょ。 常にというのはどうかなー。
var json2 = ['{name:"山田",age:30},{name:"鈴木",age:28}']; var employees = eval("("+json2+")"); document.getElementById("debug").innerHTML += "<br>employees[1].name="+employees[1].name+"<br>"; (employees[1].name=鈴木と表示される) は eval("("+json2+"");はevalは文字列をコードとして解釈するのでevalによって employees=({name:"山田",age:30},{name:"鈴木",age:28});という挙動 になると思うのですが、 var employees=({name:"山田",age:30},{name:"鈴木",age:28});とすると エラーがで何も表示されません。 何故なんですか?evalでは文字列の"("は[に変換されるのですか?
815 :
Name_Not_Found :2011/04/21(木) 09:06:07.31 ID:3eyhqsQX
>何故なんですか?evalでは文字列の"("は[に変換されるのですか? なりません、あなたが勘違いしているかお使いの実装が腐ってるだけ var json2 = ['{name:"山田",age:30},{name:"鈴木",age:28}']; var employees = eval("("+json2+")"); employees[1].name //エラー employees.name //鈴木 ({name:"山田",age:30},{name:"鈴木",age:28})は{name:"鈴木",age:28}と等価、そうなるわけがない
>>814 つかそのコード自体動いてないよ。書き込む前にテストくらいしてよ。
var json2 = ['{name:"山田",age:30},{name:"鈴木",age:28}'];
じゃなくて
var json2 = '[{name:"山田",age:30},{name:"鈴木",age:28}]';
なんと違うの?
>>814 まずはevalをalertに取り替えて評価される文字列を確認するべきだな。次に、
あなたはemployeesに何が入って欲しいと思っているのか、それは
あなたが書いたこととなぜ一致していないのかを確認するべきでしょ。
そういう基本ができるようにならないといつまでも教えてクンだよ。
814 なんか読み違えてました。 var employees = eval("("+json2+")"); は var employees=([{name:"山田",age:30},{name:"鈴木",age:28}]); と解釈されて動きますが、 var employees = eval(json2);でも動くのに var employees = eval("("+json2+")");として()を付けのは何故ですか?
>>818 括弧をつける必要はない。括弧が必要だと思う根拠は?
>>819 Javascriptに本に載ってたソースに括弧がありました。
何故括弧が欲しいのかが説明はなかったです。
>>818 全体的に意味不明。そもそも何で配列リテラル使ってるの?
キーは文字型にしないとダメなんじゃ
>>821 このソースの例は
JSONを使用することでオブジェクトの配列を生成することができます。
って本に載ってました。
>>823 それ配列じゃないから!オブジェクトだから!
著者はいろいろ勘違いしているから、その本は参考にしない方がいいよw
var text = '[{"name":"山田","age":30},{"name":"鈴木","age":28}]'; var array = JSON.parse(text); console.log(array);
>>822 確かに。
eval('{age:10}'); // 10
JSON.parse('{age:10}'); // SyntaxError: Unexpected token ILLEGAL
814 それで結局 var employees=[{name:"山田",age:30},{name:"鈴木",age:28}]; って書き方は何て言うのですか?
だからそんな書き方はしないって何度言えばわかるんだ。名称なんかあるわけない。
>>830 何を期待するか、で「正しい書き方」は変わる。
var text = JSON.stringify([{"name":"山田","age":30},{"name":"鈴木","age":28}]);
var array = JSON.parse(text);
console.log(text);
console.log(array);
>>830 ↓を期待するなら
>>814 が正しい書き方。
var object = JSON.parse('{"name":"鈴木","age":28}');
console.log(object);
今それは関係ねーだろ
> var employees = eval("("+json2+")");として()を付けのは何故ですか?
こういうことか。 eval('({age:10})'); // {age:10} eval('{age:10}'); // 10
コーディングスタイルで引数や配列を作成する際 カンマのあとに空白を開けてる人は多いと思いますが 空白を開けるのは面倒なので あとでエディタの置換機能でカンマをカンマ+空白に置き換えてるのですが こんなご苦労な処理バカバカしいですか?
eclipseでも使えよw
{name:"鈴木"}が他のものと一緒に配列になっている場合は()は不要だが 単独のときに()が無いと予想しづらい挙動をするから読者がドツボに嵌まらないようにつけてるのだろう それにしてもJSON.parseなんて限られた環境やライブラリ使用下でしか使えないメソッドは特に初心者は使わないように こういう便利ものをむやみやたらに使えば使うだけ難しい事を何とか今分かる範囲で処理しようとする応用力が付かないし いざ使えなかったり使いづらい環境で困る 今回の例だと携帯 ライブラリを読み込ませるのは重たくなるから不可 evalで十分
840 :
Name_Not_Found :2011/04/22(金) 07:07:12.63 ID:RrgfB448
>837 等幅フォント使えばスペースなんていらない 特に携帯で書いてるとスペースは見づらくなるだけ 一応断っておくがマジだから 嘘だと思うのならやってみ
やってみたら嘘でした
842 :
Name_Not_Found :2011/04/22(金) 11:23:22.45 ID:0AVlaTXu
var aaa = 123; var bb = 456; var c = 789; みたいなのは、無性にイコールの位置を揃えたくなる。 そして揃える。無駄だけど。
そろえりゃいいじゃん エディタが面倒見てくれるの使えば手間でも何でもない
>>839 > それにしてもJSON.parseなんて限られた環境やライブラリ使用下でしか使えないメソッドは特に初心者は使わないように
これはevalにこそいえることなんじゃ?初心者は
>>567 のように勘違いする可能性がある。
>>837 "," が ", " になっちゃうけど良いの?
感心しないなぁw
>>840 そもそもスクリプト書いてる奴でプロポーショナルを使ってるチンカスは居ないやろ〜
あと等幅フォントでもカンマの後に半角スペース1つ入れると見やすいよ。
JSON.parse は標準仕様だろ……
>>846 JSONを使えないブラウザがあるから、不特定多数相手の使用は避けた方がいいですが
json2.js使え
>>839 重たくなるのがNGならevalなんて使っちゃ駄目だろ。
携帯ならサーバサイドでやることを第一に考える。あるいはJSONPでいい。
個人的にはスマートフォンでなければJSONを使う気がしないけど、最近の携帯はそうでもないのかな。
>>848 それって、中でeval使ってるやん。
直接eval使った方が手っ取り早い
function onButtonClick(){ sendRequest(); } xmlhttp = new XMLHttpRequest();{ var xmlhttp; xmlhttp.onload = function(){ document.getElementById("hantei").innerHTML=("new XMLHttpRequest()"); alert(xmlhttp.status);//hello.phpがサーバーにないと404と出る if(xmlhttp.status== 200){//xmlhttp.statusの状態によって分けた processRequest(xmlhttp);} else {processRequest2(xmlhttp);} } xmlhttp.open("GET", "hello.php"); xmlhttp.send(null);} function processRequest(xmlhttp){ document.getElementById("date").innerHTML=xmlhttp.responseText;} function processRequest2(xmlhttp){
続き document.getElementById("date").innerHTML=("Error");} window.onload=onButtonClick; </script> </head> <body> <div id="hantei"></div> hello.phpの中身は<span id="date">・・・</span>です<br/> </body> </html> onload関数が呼び出されるのは読み込みが完了したときなので readystateプロパティやstatusプロパティを確認する必要がない と本に載っていましたが、hello.phpがサーバーにないときでもonload関数 が呼び出され、xmlhttp.responseTextでnot Foundが<span id="date">・・・</span> に表示されます。onload関数が呼び出されるのはxmlhttp.readyState == 4で xmlhttp.status== 200のときだけでなくxmlhttp.statusがなんな値でもonload関数が呼び出さ れるということですか?onload関数が呼び出されるのは読み込みが完了というのは xmlhttp.statusがステータスコードを取得したときと考えていいですか?
851の訂正 function onButtonClick(){ sendRequest(); } function sendRequest(){ xmlhttp = new XMLHttpRequest();{ var xmlhttp; xmlhttp.onload = function(){ document.getElementById("hantei").innerHTML=("new XMLHttpRequest()"); alert(xmlhttp.status);//hello.phpがサーバーにないと404と出る if(xmlhttp.status== 200){//xmlhttp.statusの状態によって分けた processRequest(xmlhttp);} else {processRequest2(xmlhttp);} } xmlhttp.open("GET", "hello.php"); xmlhttp.send(null);} } function processRequest(xmlhttp){ document.getElementById("date").innerHTML=xmlhttp.responseText;} function processRequest2(xmlhttp){
>>851-853 意味不明すぎる。
とりあえず、
> function sendRequest(){
> xmlhttp = new XMLHttpRequest();{
> var xmlhttp;
は
> function sendRequest(){
> var xmlhttp = new XMLHttpRequest();
の間違いなんだよな?
(三行目消し。二行目の{も消し。var 挿入)
そして、いっていることは再現しない。
オレの環境では、404コードが変わり、ちゃんと"ERROR"が表示される。
http://jsbin.com/ozuvo4/2/edit (少し手を加えた)
他にも言っていることがよく分からんが、とにかく
> hello.phpがサーバーにないときでもonload関数
> が呼び出され、xmlhttp.responseTextでnot Foundが<span id="date">・・・</span>>
> に表示されます。
というのは再現しない。
彼の疑問に回答してもレスはありません
>>854 xmlhttp = new XMLHttpRequest();xmlhttp.onload = function(){中身};
「onload関数が呼び出されるのは読み込みが完了したとき」
だからxmlhttp.status== 200は省略可能って本に書いてあったが、
xmlhttp.status== 200のときだけでなく
xmlhttp.status==404のときもxmlhttp.onloadが実行されるから
xmlhttp.onload = function(){if(xmlhttp.status== 200){中身}};
って書いたほうがいいじゃないの?って言いたかった。
857 :
Name_Not_Found :2011/04/23(土) 19:02:20.82 ID:anI3meNR
なんでこうなるのか教えてくれー var foo = "0"; (function() { alert(foo); // undefined var foo = "0"; })();
巻き上げられるから
無名関数内で var foo = "0"; があるから
860 :
Name_Not_Found :2011/04/23(土) 19:47:00.62 ID:U7OlVJVv
タグクラウドって、投稿時にはその投稿にあうタグをチェックするのが普通だけど ピッタリ来るタグがない時は自分でタグを追加しなきゃいけない …という状況について質問です 1)記事本文を入力する 2)タグをさがす、、けど良いタグがない! 3)タグを追加するボタンで追加フォームがタグ候補群の下に開く(同一ウィンドウ) 4)テキストフィールドにタグを入力、送信 5)画面遷移はなしで、さっきのタグ候補群の最後に「新しいタグが追加されて表示される」 6)そいつをチェックして、記事を投稿 この流れで3〜5のフローを実現したいんですが、ajaxですよね? どういうキーワードで調べたら良いんでしょうか? あるいはこんな機能をもったプラグインみたいなものありますか? ご意見お願いします
>>857 var foo = "0";
(function() {
// この時点で foo が関数スコープにundefined値で存在する
alert(foo); // undefined
var foo = "0"; // これはただの代入式(変数の初期化ではない)
})();
呼出された関数の文脈に入る前に関数宣言、仮引数、変数宣言(初期値undefined)でメモリが確保されるです。
862 :
Name_Not_Found :2011/04/23(土) 20:59:16.55 ID:vWUGB5na
位置行削るとなんか変 var foo = "0"; (function() { // この時点で foo が関数スコープにundefined値で存在する alert(foo); // undefined })();
865 :
Name_Not_Found :2011/04/23(土) 21:20:59.94 ID:vWUGB5na
関数スコープができた時点で 「var foo」で、変数オブジェクトのプロパティfooが値undefinedでセットされる 関数が実行されて、「alert(foo)」の時点では値はundefined、 「var foo = 0」で、初めて代入式が発火 って理解であってます?
Hoistingもテンプレに入れた方がいいのかね
867 :
Name_Not_Found :2011/04/23(土) 21:21:30.64 ID:vWUGB5na
ボタンを押すとあらかじめ決められた単語から3つランダムで出力するものを作りたいです 例えば「あ」〜「ん」の51音からランダムで3つ出力して「し」「ま」「え」など ボタンを押すたびにランダム出力するものを作りたいのですが教えていただけないでしょうか
>>865 合ってる。
>>857 の例でいえば下記と同じ。
var foo = "0";
(function() {
var foo;
alert(foo); // undefined
foo = "0";
})();
全ての変数は関数が呼び出されたときに undefined で実体化(初期化)される。
だから「関数冒頭で変数を宣言したほうがよい」とよくいわれる。
>>869 配列に単語を格納してMath.randomで要素を特定する。
872 :
870 :2011/04/23(土) 21:41:45.03 ID:???
873 :
Name_Not_Found :2011/04/23(土) 21:43:38.20 ID:vWUGB5na
874 :
857 :2011/04/23(土) 21:59:07.13 ID:???
振り返ると、そこにはスリップストリームに入っている俺の姿が 理解したありがとう
最近 JavaScript に興味持って、このスレを見てるんですけど、
>>870 さんの書き込みにある
(function() {})();
という書き方が、なぜそうゆう書き方をしてるのか理由が知りたいです。
jQuery なども、似たような書き方を積極的にしてますよね?
なぜって関数作って実行してるだけじゃない
>>875 JavaScriptではグローバルスコープから変数にアクセスできないようにする(つまりグローバルを汚染しない)には関数スコープを作らなければならない
ある処理をまとめて関数スコープに入れるのに即時関数、無名関数、クロージャとも呼ばれる「(function() {})();」というので囲む
「(function() {})();」の代わりに「(function() {}());」でもいいし「+function() {}();」などでも良い
昔のFirefoxのGreasemonkeyやOperaのUserJS用にUser Scriptを書く時によく使われてるよ
MozillaのJavaScript解説ページを見ると クロージャは使うなと書いてあるよね。
使うなじゃなくあんま使うな、なんじゃないの cssの独自プロパティもそんなこと書いてあったと思う
>>879 >>882 自分も理解しきれていない部分があるが
厳密に言えば「即時関数=クロージャ」ではないらしいよ
まぁ即時関数をクロージャと呼ぶ人もいるからそこら辺は曖昧なんだけど…
「関数の中に定義した内部関数が外側の関数(エンクロージャ)のローカル変数を参照できる仕組みをクロージャと呼んでいます(正確にはもっと小難しい説明になるのですが,JavaScriptではそれだけのことです)。」
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0005 だから関数ネストは非効率なのかもしれないけど
即時関数の使用は良いんじゃないの
どのみちletがクロスブラウザで使用できない限り
ローカルスコープの生成にはそれぐらいしか方法が無いみたいなんだから
>>882 ほんとだ、書いてある。でも…
> この場合、inside のクロージャは result に保管されています。
って書いてあるけど、なんで?
直前のコードでresultには数値8が入っているだろ。
いや、ちょっとコードを変えればresultにクロージャが入るし、それが入ればメモリ効率が悪いっていう結論も理解できるよ。
でも、これはなんらかのミスだよね?
オレ、何か勘違いしている?
>>884 そういうときは英語版を見るんだ
そっちだとちゃんとしたサンプルになってる
887 :
Name_Not_Found :2011/04/24(日) 04:42:58.01 ID:x3WhTIHP
DOM の書き換えをハンドリングする方法ってありますでしょうか? Ajax で読み込んだページの一部を埋め込んで, 埋め込んだ部分をさらに Ajax で非同期に書き換えたいのですが...
888 :
875 :2011/04/24(日) 05:40:32.56 ID:???
>>877-886 この流れと、参考 URL でちょっとだけ理解できた気がする。
クロージャって、使いようによってはオブジェクトみたいに使えるのね。
てゆか、そのもの?
JavaScriptでは関数がオブジェクトそのもの だから関数を変数に代入もできる むしろJavaScriptではクロージャがない
890 :
Name_Not_Found :2011/04/24(日) 15:42:12.58 ID:Obgl/h6o
ものすごく初心者な内容の質問なんですが
初心者スレが見当たらないので
じゃっかんスレ違いかもしれませんが、こちらで質問させてください。
http://amenti.usamimi.info/treemenu.html ↑このサイトにあるような感じの
メニュー項目をクリックするとサブメニューがスライドして現れるような
折りたたみ式のメニューを作りたいのですが、うまくできません。
クリックしてもサブメニューが出てきません。
ちなみに自分が作ってるのはこれです。↓
http://nightlykioku.nobody.jp/JavaScript_menu_test.html たぶん、if関数を使って、CSSのスタイルのdisplayの値を切り替える感じだと思うのですが
どこが間違ってるのか、色々ググって調べたのですが、もう自分の力では分かりません。
お手上げです降参です(´;ω;`)
心優しいJavaScripterの方々、どうかお力を貸してください。
よろしくお願いします。
あ、サイト内容については何も言わないで下さい(´・ω・`)
あくまで、JavaScriptの質問なんです!
質問するなら、問題が発生する箇所の最小限のソースを書けよ。
>>890 × SubMenu(kakonikki_list)
○ SubMenu('kakonikki_list')
"kakonikki_list"はgetElementByIdの引数にする文字列。
これで一歩は前進する。
893 :
890 :2011/04/24(日) 19:19:29.74 ID:???
>>891 すみませんでした
>>892 すげーーー!!!神ですか?
さすが心優しいJavaScripterは格が違った。
シングルクォーテーションで囲んだら、ちゃんと動作するようになりました!
ありがとうございました!助かりました!
もっと、何か、こう、さ。 ドーパミンが脳内にじょぼじょぼ溢れ出る様な質問来ないかなぁ。
JQueryって使えますか?
あなたは神を信じますか?
どぱー
>>894 WebGLでオレの嫁を表示する方法を教えてください。
>>895 オレは好き。
jQuery以外にも選択肢はあるけど(はず)、この手のライブラリのどれかを使わずにクロスブラウザサイトをつくろうなんて、面倒くさすぎる。
jQueryとかJSFWを使いながらクロスブラウザに対応できてなかった事例とかある?
JQuery とhtml5.js で最強ですか?
もう900か。テンプレ変更提案とかありますか?変えたばっかりだから しばらく同じで行くのでいいと思っているけど…
俺はYUIをつかうぜー
別にいんじゃね?教えるのけっこうおもしろいし 気になるなら上級者専用を立てなよ
なにその箇条書き 馬鹿過ぎる
改善案は
>>292 ,299,317-329 あたりかな。
> 一、質問を分かる日本語できちんと説明できる者 > 一、トラブルを再現する最小限のサンプルを貼れる者 この辺が出来ない奴が多すぎる。努力ぐらいはしろよと
おつ。ところで前スレの過去ログ誰か持ってる? part85のログをあげる準備をしておこうと思ったがpart84のログがあがってないことに今気づいたw
>>909 乙ですが、1行が長すぎるとちょっと読みにくい。
> 一、質問を分かる日本語できちんと説明できる者 > 一、トラブルを再現する最小限のサンプルを貼れる者 こんなはずかしいことを掲げているスレを他に知らないw ものすごくはずかしいね 似たような問題はあってもみんな大人の対応してるのに ここの自治規範はお役所より低レベル
function slide(i){ 中身} <a href="#" onClick="slide(3); return false"> onclick="関数名()"ならよく見ますが <a href="#" onClick="関数名(); return false"> のrerurn falseって何ですか?
>>915 デフォルトアクションの無効化。event.preventDefault でぐぐってみ。
>>914 少なくとも2番目の項目はいいと思うんだけどなぁ。他の質問スレにも2番目の項目は入れて欲しいくらい
始めてこのスレ見た時に文字で説明しようとせずにサンプル貼ろうとしたのはこの箇条書きのおかげだし、
どの質問スレでも「問題が発生するサンプルちょうだい」ってレスはよく書き込まれる。
まぁ、今となって回答する側になってみたら当たり前のことだなと思うんだけど昔はそんなことも気付かなかったな
>>914 ヒントもらっても初心者なのでJavaScriptを知りません。完成品下さい
ってアホも居たからな。
規律がないといくらでも荒れるぞ
まあそこまでヒドいのは即レスで
>>1 に返すしかないね
質問の枠なんてはめなくていいと思うけどな。
いまの
>>1-2 のような「質問者にとって回答してもらいやすい」ガイドラインで十分だと思う。
たしかに、どういう動作をさせたいのか良く分からない質問、問題が絞り込まれていない質問は答えにくい。
そして、何をしたいのか分からんが、こういうことをしたいなら…を使えばできるぞ、みたいな回答は質問した人にとって役に立たないことも多いだろう。
要は、効率的ではない。
でも、2ちゃんの質問スレで効率を求めるよりも、いろんな刺激があったほうが面白いと思うんだよね。
質問者には理解できなくても、他の人が「ほう、そういうライブラリがあるんだ」と勉強になれば、それでもいいし。
ちらうら オライリーのjavascriptパターンを買った CrockfordさんのサイトとかYUIのブログ巡回に疲れた自分には良書だと思う
>>916 こんな感じですか。
<script type="text/javascript">
function click01(){
alert("01");}
</script></head><body>
onClick="return false"でhref="〜"が無効にされる<br>
<a href="
http://www.google.co.jp/ " onClick="return false">onClick="return false"なのでhrefのグーグルが開かない</a><br><br>
<a href="
http://www.google.co.jp/ " onClick="click01()">01とアラートがでてグーグルが開く</a><br><br>
<a href="
http://www.google.co.jp/ " onClick="click01(); return false">01とアラートが出てグーグルが開かない</a>
</body>
旧1(
>>903 )を復活させる派と短くしたまま派がいるので、
そのどちらかにするかは合意形成が必要だと思うが。
今スレの状況でいいと思うかよくないと思うかにほぼ対応
しているよね。洩れは短く変えた以上しばらくは現状派(今のとこ)。
目もあてられないひどさということはないと思うので。
924 :
Name_Not_Found :2011/04/25(月) 11:22:35.09 ID:i7G9bgyf
旧1(
>>903 )は、高飛車すぎるというか、ふつうじゃないよね
何度も言うが、あれじゃ堅すぎて回答側が子どもまるだしだよ
あの規約をうたいたい奴って、普段の業務でどんだけ抑圧されてるかがわかる
オマエまでが自演だろ バレバレ
違うよ じぇんじぇん違うよ
931 :
Name_Not_Found :2011/04/25(月) 14:51:01.67 ID:i7G9bgyf
ここまで自演
グスン
遊ぶのは構わないんだけど、意味のあることも一緒に書いてくれないとレスの 無駄遣いすぎると思われ。復活派に聞きたいけど、本スレで旧1があれば 問題なかったと思われるような質問はどれとどれよ?エビデンスって奴? :-)
>>922 そう。ちなみに
>>915 のような書き方は推奨しない。
アコーディオンメニューならスクリプトオフで全コンテンツが見えるようにすればよい。だからa要素である必要はない。
スクリプトオフでは何も見えないのはユーザビリティの低いやり方だな。
935 :
Name_Not_Found :2011/04/25(月) 15:59:20.01 ID:i7G9bgyf
>>933 すまんこ
旧
>>1 をリライトしてみた
━━━自ら学んでJavaScriptを書く人のためのスレです━━━━
誰でも分かりやすい日本語で。書き込む前に一度読みなおそう
>>2-4 のテンプレ、FAQ、過去ログ、関連資料も読もう
JavaScriptとJavaは別物だと何度言えば(ry
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下三つは
>>2 に回すべきかと
一、ユーザに迷惑となるスクリプトを書くのはやめよう
一、正しい(validな)HTMLとは何か知っており書ける者
一、トラブルを再現する最小限のサンプルを貼れる者
正直「日本語できちんと説明できる」とか「誰でも分かりやすい日本語」とかは要らないと思うんだよな。 始めに「〜な意図で下のようなコードを書いたのだけど〜ってエラーが出るんですよ」と書いてあって 後はコードだけ並んでた方がよっぽど回答しやすい気がする。 むしろ日本語でわかりやく書こうと長文になってる質問は 「用語調べてこい」「よくわからん」「コード出せ」 って起こられるパターンが多いから可哀想だわ
「いわなくてもわかる部分」と「いわないとわからない部分」の境界なんだよな。 旧テンプレは後者が強かったが、やりすぎると質問も回答も投稿しづらくなる。
>正直「日本語できちんと説明できる」とか「誰でも分かりやすい日本語」とかは要らないと思うんだよな。 まったくだ。何度も言うがこんなこと規定してるほうが恥ずかしいわ
> 一、正しい(validな)HTMLとは何か知っており書ける者
初心者は「正しい(validな)HTML」が何かわかってないと思うよ
「
http://validator.w3.org/ でエラーの出ないHTMLを貼ってください」とかわかりやすい指針が必要かと
940 :
Name_Not_Found :2011/04/25(月) 16:41:46.47 ID:i7G9bgyf
>>938 じゃあ、こうで
━━━自ら学んでJavaScriptを書く人のためのスレです━━━━
>>2-4 のテンプレ、FAQ、過去ログ、関連資料も読もう
書き込む前に一度読み直しましょう
JavaScriptとJavaは別物です(キリッ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
テンプレを読む人は全部読むし読まない人は全く読まない
>>1 はそのままで
>>2 に加筆修正するだけでいいと思うな
必要なら
>>2 に誘導すればすむし、
>>1-2 に分散してるとむしろ誘導しにくい
943 :
Name_Not_Found :2011/04/25(月) 17:01:16.50 ID:i7G9bgyf
今まさにテンプレを読んでいる人に「テンプレを読もう」と注意喚起する要あるのかな? 読んでいない人にこそ指摘したいはずなんだけどw
まったくだ
949 :
Name_Not_Found :2011/04/25(月) 17:24:22.37 ID:ZYGQlr9U
旧
>>1 と現
>>2 は、目的は同じなんだよな
要は「ちゃんと質問しようぜ」って喚起してるって意味で
それが
>>1 になくなったのが、問題なんじゃないかな
>>949 「
>>1 を読んで
>>2 を読まない人」を考慮してるんだよな
そういう人は(自分にとって)必要な情報だけ読むから
>>1 に「ちゃんと質問しようぜ」があっても読み飛ばすと思う
懸案事項はこの辺かな。
・
>>1 と
>>2 を入れ替えるべき
・書き込む前に一度読み直しましょう
・JavaScriptとJavaは別物です(キリッ
・正しい(validな)HTML
だーかーらー 書き込む前に一度読み直しましょう ↑おかしいって。そういうアホも世の中には確かにいるけど、わざわざ掲げてるとこっちがアホみたいだ
テンプレとかカスはどうせ読まないから議論が無意味
テンプレ不要派は議論に参加しなくていい
955 :
Name_Not_Found :2011/04/25(月) 19:33:07.11 ID:i7G9bgyf
>>952 テンプレから旧
>>1 を外したら
そういうアホが増えたね、って話だから…
動かないサンプル貼る人とかね
ジェイクエリーのスレってないの?
動かないサンプル貼る人は以前からいた
そんなに増えたかな? たいして変わってない気がするんだけど
テンプレにあることで「回答してはいけない」風潮だったのが最近はそうでもない それが古株には許せないのかもね
<script type="text/javascript"> function aa(){ alert("Hello");} </script> onClick="aa" onClick="aa"を押して10秒後や20秒後に遅れてalertを 出すなどはどうするんですか?
963 :
Name_Not_Found :2011/04/25(月) 20:56:30.63 ID:i7G9bgyf
JavaScript自体がブラウザ依存のユルユル言語だから スレもそう堅苦しくならずにいけばいいんじゃないかと
セミコロンとかなくても問題なくjavascriptが動くが c言語でセミコロン忘れるとコンパイルでエラー出て イラつくよな
donnatenukinoshitsumonnwoshitemo,omaeragadoryokushitekaidokushitekotaerrebaiindayo.
>>963 明らかに情報不足だなと思える質問はスルーされるのが当たり前だった
スレの進行速度も一日に2〜3レスぐらい
必要最小限のレスしかないのがふつうで長文レスはうざがられる
回答は上級者のみに絞られていて安易に回答出来ない雰囲気があった
スレなんて時間とともに変化していくものだよ
じゃあ馬鹿っぽいって叩かれてる項目抜いてこれでいいんじゃねーの 一、正しい(validな)HTMLとは何か知っており書ける者 一、ユーザに迷惑となるスクリプトを書かない者 一、トラブルを再現する最小限のサンプルを貼れる者
971 :
Name_Not_Found :2011/04/25(月) 23:13:42.58 ID:i7G9bgyf
結局
自ら学んでJavaScriptコードを書く人のためのスレです
テンプレ
>>2-4 ってだけ書いとけばいいんでないかい?
指定した外部サイトの文章に特定の文字が含まれているか自動で何回も検索するスクリプトを作りたいんですが 外部サイトの文章を取り込むにはどうすればいいんでしょうか?
全てのサイトで検索できるようにするにはjavascriptでは無理ですか?
>>975 はっきりいって迷惑スクリプトの類だからJavaScriptでは許可されない。
スクレイピングは他人のサイトのいいとこ取りだからね。
ありがとです、スクレイピングっていうんですね まあ掲示板を監視したかっただけなんですができないようなのであきらめて他の言語にあたることにします。
Windows なら JScript 使うと良いよ。 ファイルシステム使うなら VBScript の方が良いかもだけど。
>>969 もう普通に敬語で書けば反発も少ないんじゃないのかね
もともとシャレで道場訓ぽく書かれたんだろうけど
「道場訓」の標記が消えてただの高圧的な文章になってるしw
時間切れですね。次スレは現行と同一でしかたないと思うがいかが。
そしてninja-状態か。 >トラブルを再現する最小限のサンプルを貼れる者 これだけはいれてくれw
まだ言ってるよ 常識は書かなくていい。なぜなら常識を逸脱するやつはそんなの読まないから。 目を通すのは常識あるひとのみ。そしてそのひとらにナメられる
>>981 再現性にも触れられているしそれでいいんじゃないか
やっぱり洩れには建てられませーん。誰かお願い。
>>981 で。
テンプレの議論は引き続きやるんでいいと思うんで。
無視してるわけではないのでそこんとこよろ。
ありがと!
>>986 再現するサンプルだけど、テンプレに書いてあっても結局繰り返し
言う羽目になる(駄目な奴ほど書いてあっても無駄)という印象だった。
だからそういう奴に書けというかテンプレを指すかの違いでしかないよね。
それを言ったらテンプレ自体要らなくなるだろアホか
>>988 それはないね。FAQとかは「FAQにあるよ」と指摘する方がだいたい説明が
簡単だし、それ見た人がFAQを(少しは)読んで自力解決するようになるかと。
常識はあるが質問の仕方を知らない人はテンプレを読むから無意味じゃない
専ブラを使わない場合
>>1 と特定のレス以降が表示される
専ブラによってもそうだろう
>>1 だけ読んで
>>2-4 とか読まない人は多いと思うが・・・
その為に
>>1 に書くということは悪くないと思うんだが
>>990 笑
テンプレがいらないんじゃない
jsと直接関係ない一般常識を書くのがバカバカしいだけだ
おまえの常識はダイジョーブかwww
それも一理あるが、常識の範囲内。
>>992 一般常識がテンプレに必要とは一言もいってないんだが、おまえこそ大丈夫か?
常識ある人はそんな事ぐらいでナメたりバカにしたりしないから安心しろ
「再現可能な最小限のコードを掲示する」は一般常識じゃないよな……
釣りに混じれ酢
本当は違うんだろうけど釣りってことにしとけw
おまん
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。