元スレ+ JavaScript の質問用スレッド vol.80 +
JavaScript覧 / PC版 /みんなの評価 :
1 = :
━━━本スレに書く事を許される者は以下の通り━━━━━
一、正しい(validな)HTMLとは何か知っており書ける者
一、JavaScriptはJavaとは別物であると知っている者
一、自ら学んでJavaScriptコードを書く意思を持つ者
一、ユーザに迷惑となるスクリプトを書かない者
一、質問を分かる日本語できちんと説明できる者
一、トラブルを再現する最小限のサンプルを貼れる者
一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレhttp://hibari.2ch.net/test/read.cgi/hp/1277348045/
[必読]過去スレ全集http://www2.atpages.jp/mirror/2ch/javascript/
(閲覧のみ)http://usamimi.info/~mirrorhenkan/2ch/javascript/
(閲覧のみ)http://wing2.jp/~mirrorhenkan/2ch/javascript/
[必読]ガイドhttp://developer.mozilla.org/Ja/JavaScript
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-7
2 = :
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
ただ「動きません」「エラーです」は何も情報がないため嫌われる。
エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
手間を食わせる可能性大
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
3 = :
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
(2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
<div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。
tbody要素はtbodyタグを書いていなくても自動的に作成されます。
またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A8. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
4 = :
【FAQその2】
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
offsetがマッチした位置、sが置き換え前の文字列全体になります。
5 = :
【FAQその3】
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
6 = :
jsってもうWebProg板でいんじゃね?
jqueryとかもう中身を知りたいならエンジニアじゃなきゃ無理でしょ
8 = :
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
→http://www2u.biglobe.ne.jp/~oz-07ams/prog/
どら猫本舗のリファレンスカウンター
→http://www.doraneko.org/
はぎさんちのページ Mozilla's DOM Sample Project
→http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi
一撃必殺javascript
→http://www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ part219
→http://hibari.2ch.net/test/read.cgi/hp/1281429437/l50
CSS初心者スレッド=8th=
→http://hibari.2ch.net/test/read.cgi/hp/1273383771/l50
役に立つ書籍は? 4冊目
→http://hibari.2ch.net/test/read.cgi/hp/1172823674/l50
1行javascriptプログラミング
→http://hibari.2ch.net/test/read.cgi/hp/1066750037/l50
WSH(・∀・)スレッド! Part 4
→http://hibari.2ch.net/test/read.cgi/tech/1243095768/l50
12 = :
>9
俺はAptana使ってる。
ところでjQueryクックブック買ったんですが、
オライリーのサイト見たけどサンプルコードがどこにも見あたらなくて。。
jsの部分は本に載ってるからいいんですが、cssが載ってないから
途中から進めなくなりました。。。わかる人いますか?
13 = :
oreilly.comを見るとか
14 = :
>13
ありました。ありがとうございます。
俺が馬鹿でした。。
19 = :
前スレ一気に埋まったなw
20 = :
あのさあ、 >>17 はjavascriptでできるよって言っているの。
CGIなど鯖側の技術でやりたいという質問じゃないでしょ。
>>15 「javascript referrer」で検索すれ。
21 :
>>20
ごめんなさい。
でもリファラでどうやって?つかそもそも件名ってなんだ?
GETで投げるか、クッキーを使うかぐらいしか思いつかん。
23 = :
: ためしてないだろ。コードかけよ。
に激しく同意。自分で書く気がない奴はカエレ!
24 = :
function Foo() {}
などして適当に作ったクラス(のようなもの)にメソッドを追加するのに、
Foo.prototype.hoge = "hoge";
Foo.hoge = "hoge";
の2通りあるようですが、これらの違いは何ですか?delete演算子で削除できるかどうか、しか分かりません。
また、prototypeは全てのクラスで使えるメソッドのようですが、何に使うものですか?
25 = :
>>24
全く意味が違います
Foo = function() {}
Foo.hoge = "aaa"
Foo.prototype.fuga = "bbb"
foo = new Foo();
としたときに、
Foo.hoge => "aaa"
foo.hoge => undefined
Foo.fuga => undefined
foo.fuga => "bbb"
となる。foo.hoge や Foo.fuga は未定義
Foo.hoge への代入はクラスのプロパティ、
Foo.prototype.fuga への代入はインスタンスのプロパティ
をそれぞれ定義している、というと分かりやすいかな。正確な表現ではないけど
26 = :
なんか、JavaScriptのプロトタイプ方式についてちゃんと説明した
本なり解説文を読むのがいいと思うよ。クラスなんて存在しないし
それをクラスがあるとか思っていると結局どこかで破綻すると思う。
27 = :
>>25
なるほど、ありがとうございます。
28 = :
ちゃんと解説した本て何があるよ
JavaScript第5版ですらクラスで説明してあるし
29 = :
どっかでスコープチェーンの解説記事を読んで初めて納得した記憶がある
30 :
>>28
まあプロトタイプのことも説明してあるし、
クラスと呼称しているのは、分かりやすくするためなんだろうな。
31 :
SEO対策無双ってすごいよな!
http://twitter.com/creditcardmiu/status/24272923242
クレジットカードの関連キーワードでサイトを量産して、
被リンク対策はすべてSEO対策無双に任せるというやり方が効率がいいのではないかと思ったよ。
32 = :
あ
34 = :
昨日の記事だけど
第14回 プロトタイプと継承
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0014
35 = :
プロトタイプと聞くと必ず脳裏をよぎる、緑のアイツ。
36 = :
プロトタイプはぜんぜんわかんね
38 = :
デザインはいいけど色が地味で再訪する気が失せるのがもったいないな
39 = :
>>37
中身が存在しないフィードの投稿日を参照した結果のエラーだろう。
フィードの読み込みに失敗した場合の処理をしてないのが原因で、
たまたまIE以外のブラウザで処理が早かったか、参照する先の
回線との相性が良かったかの違いがある程度で、本来はそこの
URL以外でも、どんなブラウザでもエラーが出る可能性がある。
// 「読み込みに成功した場合」(73行目)
if (!result.error) {
ここの条件分岐が「読み取りに成功した場合」だから、その後ろに
「読み取りに失敗した場合」のelse節を追加し、処理を打ち切るなり
再読み込みするなりすれば、同様のエラーは出なくなる。
40 = :
>>38
デザイン褒めて頂いて嬉しいです感謝
地味なのは私自身が地味なので・・・でも再訪されないのは寂しいので考えてみます
>>39
おおなるほど。失敗した場合の処理ですか
勉強して追加してみます
丁寧に教えて頂いて本当に有難う御座いました
43 = :
一行目を読んだとき、一瞬遊べる質問かと思ったけど、意味が全然分からん。
44 = :
>>41
・randomlistの中身は文章だけにして、document.writeで出力する時にclass属性をつけたタグで囲む
・noscriptの中身のテキストとこのrandomlistの出力を、(pとfontのような別物ではなく)同じタグの同じclassにする
・そのclassには、font-faceも指定
・noscriptはブロック要素だから、 ブロック要素の中にaisatu()を出力する
これでもダメなら、こっちの詳しい連中に質問だな。
[CSS初心者スレッド=8th=]
http://hibari.2ch.net/test/read.cgi/hp/1273383771/l50
46 = :
>>44
そのスレの住民はまともなの少ないw
48 = :
やっぱそんな訳ないか。
49 = :
質問です
時間毎に画像を変える方法なのですが、30分毎に変えるのは下のように書いて
出来たのですが、これを20分毎、15分毎にする事が出来ません
やり方をご存知な方はいらっしゃいますでしょうか
<!--
var msg = new Array();
msg[0] = '<IMG SRC="xxx.jpg">';
~省略~
msg[47] = '<IMG SRC="xxx.jpg">';
var d=new Date();
document.writeln(msg[d.getHours()*2 + (d.getMinutes()>29 ? 1 : 0)]);
// -->
50 = :
メッセージの表示を img タグにコピペ改変し、更新間隔の変更を 2ch で質問。
何という他力本願。
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.85 + (1001) - [97%] - 2011/4/25 21:32
- + JavaScript の質問用スレッド vol.81 + (1001) - [97%] - 2010/12/10 20:01
- + JavaScript の質問用スレッド vol.87 + (1001) - [97%] - 2011/6/21 6:33
- + JavaScript の質問用スレッド vol.86 + (1001) - [97%] - 2011/5/27 21:50
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.84 + (1001) - [97%] - 2011/3/30 7:32
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.82 + (1001) - [97%] - 2011/1/19 7:54
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.89 + (1001) - [97%] - 2011/9/4 4:17
- + JavaScript の質問用スレッド vol.88 + (1001) - [97%] - 2011/7/20 7:03
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.104 + (1001) - [95%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.103 + (1001) - [95%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.102 + (1001) - [95%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
- + JavaScript の質問用スレッド vol.101 + (1001) - [95%] - 2012/7/16 14:15
トップメニューへ / →のくす牧場書庫について