元スレ+ JavaScript の質問用スレッド vol.105 +
JavaScript覧 / PC版 /みんなの評価 :
1 = :
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。(なりすまし及び煽り防止のため)
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合はhttp://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
3 = :
■主要FAQ (全部はhttp://fiddle.jshell.net/vSqKr/33/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 = :
■各種仕様 (http://fiddle.jshell.net/vSqKr/33/show/#Link も参照 )
◆ Standard ECMA-262
http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm (本家PDF版アーカイブ)
http://es5.github.com/ (ECMAScript 5.1 有志HTML版)
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (ECMAScript 3 和訳)
◆ ECMAScript compatibility table
http://kangax.github.com/es5-compat-table/ (ECMAScript 5)
http://kangax.github.com/es5-compat-table/es6/ (ECMAScript 6)
◆ HTML Standard (HTML5)
http://www.whatwg.org/specs/web-apps/current-work/multipage/
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
http://dom.spec.whatwg.org/ (DOM Standard (DOM4))
http://www.hcn.zaq.ne.jp/___/WEB/DOM4-ja.html (DOM Standard 和訳)
http://www.w3.org/TR/DOM-Level-3-Events/ (DOM3 Events)
http://www.w3.org/TR/cssom/ (CSSOM)
http://www.w3.org/TR/cssom-view/ (CSSOM View Module)
http://www.hcn.zaq.ne.jp/___/WEB/cssom-view-ja.html (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
http://domparsing.spec.whatwg.org/ (DOM Parsing and Serialization - innerHTML等)
http://xhr.spec.whatwg.org/ (XMLHttpRquest)
http://www.hcn.zaq.ne.jp/___/WEB/XHR-ja.html (XMLHttpRequest 和訳)
http://www.whatwg.org/specs/ (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs
◆ JavaScript Garden (ja)
http://bonsaiden.github.com/JavaScript-Garden/ja/
◆ JSON (JavaScript Object Notation)
http://www.json.org/json-ja.html
◆ MSDN Library
http://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript)
http://msdn.microsoft.com/ja-jp/library/cc427807.aspx (JScript)
http://msdn.microsoft.com/ja-jp/library/cc409712.aspx (DHTML)
6 = :
あれーまた違ってましたか。なんで見落としてしまうのかなー。すみません。
7 = :
http://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
これみたら一つ上のカテゴリーが
MDN>Document Object Model (DOM)
ってなってて
それがhttps://developer.mozilla.org/en-US/docs/DOM
なんだけど
実際にここからどう辿っていったらaddEventListenerのページまでたどり着けるんですか?
8 = :
>>7
http://developer.mozilla.org/en-US/docs/DOM
(view all...をクリック)
http://developer.mozilla.org/en-US/docs/tag/DOM
(3をクリック)
http://developer.mozilla.org/en-US/docs/tag/DOM?page=3
(element.addEventListenerをクリック)
http://developer.mozilla.org/en-US/docs/DOM/element.addEventListener
11 = :
すいませんHTMLも含めてコピペして動くものをおねがいできませんか
codepadとかideoneとかどっか別サイトにはってもらっていいので
13 = :
全部直せとかいうのは断る。遅れて動くということは一番最近に
取得した位置まで「徐々に」近づいて行く動作をするための
setIntervalで定期的に動作するコードが必要だと思うけどいかが。
14 = :
window.onload = function() {
//var velocity = 0.3;
cnvs = document.getElementById("canvas1");
cnvs.style.position = "absolute";
cnvs.style.top = 0 + "px";
cnvs.style.left = 0 + "px";
document.body.onmousemove = function (event) {
var mX = event.clientX;
var mY = event.clientY;
var cnvs;
if(!cnvs){
cnvs = document.getElementById("canvas1");
}
var cnvsX = cnvs.style.left;
var cnvsY = cnvs.style.top;
cnvsX = cnvsX.replace("px",'');
cnvsY = cnvsY.replace("px",'');
cnvs.style.position = "absolute";
var dX = mX - cnvsX;
var dY = mY - cnvsX;
cnvs.style.left = dX + "px";
cnvs.style.top = dY + "px";
}
}
15 = :
それっぽく動いたけど、あとは座標の調節と+-の操作うまいことやっちくりー
16 = :
スレの始まりでは前スレ終わったかどうか見てから書き込んでよ
>>7
http://developer.mozilla.org/en-US/docs/DOM
(「Gecko DOM Reference」)
↓
http://developer.mozilla.org/en-US/docs/Gecko_DOM_Reference
(「DOM element Reference」→「Methods」)
↓
http://developer.mozilla.org/en-US/docs/DOM/element#Methods
(「addEventListener」)
17 = :
ローカルルールのリンク先更新の人が最近迅速なので、次からは前スレ
がほぼ埋まってからリンク先更新を依頼するようにしませう。
18 = :
wikiつくってよ
19 = :
言いだしっぺの法則
20 = :
wikiとかいらんから日本語stackoverflow作ってよ
22 = :
そういや、このjsの質問スレの抜粋した内容のwebサイト
作るって言ってた人がいた気がしたがどうなったっけ?
23 = :
先生達 この問題を解決してください
もう先生たちの力しかたよれません。
ちなみに教えてgooに質問してますので問題の内容は教えての方をみてください
http://oshiete.goo.ne.jp/qa/7916158.html
24 = :
>>22
そんな人いた?
26 = :
質問。jQueryでイベントを貼ったDOMのキャッシュをjsで持って使いまわしたい。
しかし一度bodyから剥す(jQuery#empty)とイベントが発火しなくなる。
DOMを作ってイベントを貼る
var $el = $("<div>").html("<div>click me</div>");
$el.on('click', function(){console.log('clicked')});
DOMに貼り付けるとclickイベントはちゃんと動く
$(body).append($el);//=> クリックしてclicked
DOMに再度貼り付けるとclickイベントが消えている
$(body).empty();//DOMの中身を消す
$(body).append($el);//クリックしてもイベントが発火しない
環境はChrome Mac / jQuery1.9
jQueryで作ったDOMはそのままキャッシュしていると思うんだけど、違うんでしょうか
$el[0].onclick = function(){…}と定義すれば動くけど、それは<div onclick=… に書き換えてるからやりたいことと違う
28 = :
$.emptyの前に$el.detach();で消す
29 = :
>>28
あざっす!動きました。
removeやemptyはイベントハンドラも削除してたんですね
$(body).html('')でも消えてたんで焦ってたんですが
ドキュメントよく読めば書いてあるしもうちょっと調べればよかったです…
30 = :
>>>13 >>>14
ありがとうございます。
やっぱりif文チェックとかsetIntervalが必要そうですね。
べったりくっ付くマウスストーカーは楽勝なんですけど
早くクオリティ上げるよう勉強します
31 = :
オレはjavascript、html5、jQueryのサンプル公開してるwebサイト
をいくつか持ってるが、このスレの内容は一部改変して使ってる。
ほかに、プログラム本のソースコードとか他人が公開したコード
を一部改造して使ってる。ネットでプログラムのネタは山のようにあるな。
32 = :
何かのコピペ?
33 = :
>>31
品質が低そうだし、いつか著作権違反で訴えらそうだね。
36 = :
許しましょう!
37 = :
>>33
広く浅く一般的なことしか載せてないから訴訟はされないだろ。
たいしてアクセス数ないし
40 = :
>>37
バレる可能性が低ければ何をやってもいいと考える小悪党ですか。
41 = :
そういえばV8って実は日本語(というかUTF8)の変数通すから
(function(ちくわ大明神){
console.log(ちくわ大明神);
})('馬鹿めヤツは死んだわ');
とかもコンパイル通るんだよな
42 = :
>>40
プログラムの解説してるwebサイトとかサンプル公開してる
webサイトって似てるのばっかやんっと言ってみる
43 = :
一部例外除いて、プログラミング言語としてJSしか覚えてない人のJSは質が低い
俺が他人にJS教えるときは、ネットに落ちてるコード(とくにAJAX以前)は参考にするなと言っている
John Resig(jQuery), Jeremy Ashkenas(Backbone) あたりがモダンなJS書く印象
日本だとカヤック、サイボウズ、モジラ系の連中の一部がレベル高い感じ
44 = :
質の高いコードを書くことなんかより、
風呂場を清潔に保つことの方が難しいけどな。
45 = :
>>43
jQueryは参考にさせたくないコードの筆頭だと思うけどなー
46 = :
ライブラリのコードはショートコーディングが多かったり、
minify後に小さくなるようなテクニックを使ってたりするから、
一般のスクリプトを書く際の参考にはあんまりならなさそう
http://d.hatena.ne.jp/uupaa/20100730/1280502000
http://nanto.asablo.jp/blog/2013/01/28/6703606
47 = :
jQueryは目的上どうしてもメタプロ気味なリフレクション黒魔術しないといけないからなぁ
ライブラリの基礎部分はメタプロしてもいいけど、表にそれがはみ出るやつはダサい
48 = :
>>42
赤信号もみんなで渡れば怖くない、と考える小(ry
49 :
>>47
もう少しわかりやすく
50 = :
>>49
白鳥が水面下で足をバタバタさせるのはいいけど
水面に波を立ててはいけない
類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.100 + (1001) - [97%] - 2012/6/13 22:46
- + JavaScript の質問用スレッド vol.101 + (1001) - [97%] - 2012/7/16 14:15
- + JavaScript の質問用スレッド vol.102 + (1001) - [97%] - 2012/9/11 17:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.106 + (1001) - [97%] - 2013/7/20 9:30
- + JavaScript の質問用スレッド vol.107 + (1001) - [97%] - 2013/9/7 10:16
- + JavaScript の質問用スレッド vol.108 + (1001) - [97%] - 2013/9/21 15:16
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [97%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.141 + (881) - [95%] - 2021/4/19 9:00
- + JavaScript の質問用スレッド vol.122 + (116) - [95%] - 2018/5/2 18:30
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.122 + (1004) - [95%] - 2015/2/14 4:45
- + JavaScript の質問用スレッド vol.126 + (348) - [95%] - 2023/1/12 17:00
トップメニューへ / →のくす牧場書庫について