14/05/03 08:17:42.43
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
URLリンク(jsdo.it) URLリンク(jsbin.com) URLリンク(jsfiddle.net) URLリンク(ideone.com)
3:Name_Not_Found
14/05/03 08:18:54.92
■前スレ
+ JavaScript の質問用スレッド vol.114 +
スレリンク(hp板)
■過去スレ全集
URLリンク(www2.atpages.jp)
URLリンク(usamimi.info) (閲覧のみ)
■テンプレ案
URLリンク(jsfiddle.net)
■関連スレ
ECMAScript デス 4
スレリンク(tech板)
【jQuery】JavaScript ライブラリ総合質問所 vol.3
スレリンク(hp板)
【WHATWG】HTML5 Part6【W3C HTML WG】
スレリンク(hp板)
Webサイト制作初心者用質問スレ part239
スレリンク(hp板)
CSS初心者スレッド=12th=
スレリンク(hp板)
Canvasについて語ろう
スレリンク(hp板)
4:Name_Not_Found
14/05/03 08:20:05.80
■主要FAQ (全部は URLリンク(fiddle.jshell.net) )
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 中でやるとか。
5:Name_Not_Found
14/05/03 08:25:56.27
■各種仕様 ( URLリンク(fiddle.jshell.net) も参照 )
◆ Standard ECMA-262
URLリンク(www2u.biglobe.ne.jp) (ECMAScript 3 和訳)
URLリンク(www.ecma-international.org) (ECMAScript 5.1 HTML版)
URLリンク(people.mozilla.org) (ECMAScript 6 有志HTML版)
URLリンク(kangax.github.io) (ECMAScript 5 compatibility table)
URLリンク(kangax.github.io) (ECMAScript 6 compatibility table)
◆ HTML Standard (HTML5)
URLリンク(www.whatwg.org)
URLリンク(momdo.s35.xrea.com) (HTML5.1 部分訳)
URLリンク(www.hcn.zaq.ne.jp) (Web Storage 和訳)
◆ Document Object Model (DOM) / CSS Object Model (CSSOM)
URLリンク(www.hcn.zaq.ne.jp) (DOM Standard (DOM4) 和訳)
URLリンク(www.w3.org) (DOM3 Events)
URLリンク(www.w3.org) (UI Events)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM 和訳)
URLリンク(www.hcn.zaq.ne.jp) (CSSOM View Module 和訳)
◆ その他のWeb関連仕様
URLリンク(domparsing.spec.whatwg.org) (DOM Parsing and Serialization - innerHTML等)
URLリンク(www.hcn.zaq.ne.jp) (XMLHttpRequest 和訳)
URLリンク(www.hcn.zaq.ne.jp) (File API 和訳)
URLリンク(www.whatwg.org) (WHATWGの仕様一覧)
◆ MDN (Netscape/Mozilla)
URLリンク(developer.mozilla.org)
◆ JavaScript Garden (ja)
URLリンク(bonsaiden.github.com)
◆ JSON (JavaScript Object Notation)
URLリンク(www.json.org)
◆ MSDN Library
URLリンク(msdn.microsoft.com) (JavaScript)
URLリンク(msdn.microsoft.com) (JScript)
URLリンク(msdn.microsoft.com) (DHTML)
6:Name_Not_Found
14/05/03 13:05:07.40
>>1Java乙cript
7:Name_Not_Found
14/05/03 18:37:34.60
>>1乙
dom要素へのidの設定はsetAttributeを使うのとidプロパティへの代入と
どっちがいいんですか?
8:Name_Not_Found
14/05/03 18:41:22.61
関数の中で関数を定義している場合
親関数が呼ばれるたびに子関数は再定義されるのでしょうか?
9:Name_Not_Found
14/05/03 19:37:18.88
onscrollハンドラが、スクリプトによるscrollでも反応します
しかし、タイミング的に反応して欲しくない時があります
一時的にハンドラを無効にするいい方法はないでしょうか?
10:Name_Not_Found
14/05/03 20:04:19.03
>>9の件ですが、bindFirstプラグインで別のハンドラを上に登録し、そこでイベントをstopし、
反応してほしくない期間が終わったらその蓋ハンドラを削除するというウルテクを思いつき
うまくいきました
もっといい方法はあるでしょうか?
11:Name_Not_Found
14/05/03 22:11:49.08
>>9
もっといいかどうかわからんが
その期間中ハンドラの中で条件分岐とか
removeEventListner+addEventListenerとか
別のハンドラでcapture+stopPropagationとか
これらの組み合わせなど
テクと言うほどでもない方法はある
12:Name_Not_Found
14/05/04 01:22:05.96
コールバック関数を使ったプログラミングでは
後で実行されるコードを先に書いたりして、すごく見にくくなります
コールバック関数の中で更にコールバック関数を使ったりすると更にごちゃごちゃになります
見やすくする方法はないでしょうか?
13:Name_Not_Found
14/05/04 02:32:26.41
ぼくもちょうどそれを質問しようとしたのでしりたいです
簡単なものは今までは↓の感じでやっていました
var _to = {};
_to.print = function(a) { console.log(a); };
_to.abs = function(a) { return Math.abs(a); };
function sum(a,b,callback,callback_name,callback2,callback2_name) {
return callback[callback_name](a+b,callback2,callback2_name);
};
sum(1,-3,_to,'print'); // -2
console.log(sum(1,-3,_to,'abs')); // 2
sum(1,-3,_to,'abs',_to,'print'); // 2
14:Name_Not_Found
14/05/04 11:44:26.93
>>12
あるよ。 「javascript 非同期ライブラリ」でぐぐれば
いろんな人が分かりやすく教えてくれてる。
>>13
君はまず、いいライブラリを使って見る必要があるね。
lodashとかピッタリだろう。
よく考えられて作られたライブラリは
どのような使い方をするのか勉強すれば
自分でも作れるようになるだろう。
15:Name_Not_Found
14/05/04 14:06:16.58
前スレ >996
エスケープの意味がわからないが、一般的に、
人が入力するデータは、間違いが多いから、
入力チェックや訂正をする
>>8
再定義ってどういう意味?
>>9
イベントを処理しないのなら、
ハンドラの冒頭で、即リターンすれば?
16:Name_Not_Found
14/05/04 14:14:29.58
質問なのかよくわからないんですが
JavascriptやjQueryにオススメのテキストエディタってありますか?
17:Name_Not_Found
14/05/04 15:07:08.14
どうみても質問です
18:Name_Not_Found
14/05/04 15:30:54.14
本当に
19:Name_Not_Found
14/05/04 16:12:02.62
>>16
sublime text一択
20:Name_Not_Found
14/05/04 17:00:25.44
Win7 サクラエディタ、NotePad++
Win8 TeraPad
やっぱ、IDEじゃないと、プロパティなどの補完が効かない
21:16
14/05/04 17:19:42.25
個人的に「あれ?あの関数なんていったっけ?ti・・・ti・・・」→time()
って予測変換で教えてくれるのがあればいいなーって思ってます
22:Name_Not_Found
14/05/04 17:47:20.05
単語補完とかスニペットとかのキーワードでググると吉。
23:Name_Not_Found
14/05/04 18:21:49.38
sublime text2で出来る
B級以上のJavaScripterはみんな使ってるよ
24:16
14/05/04 18:27:11.83
うおおおおsublimetextっての調べてみたらコレは凄い
これです、こんなの探してましたありがとうございます
これでフリーだなんて世の中凄いものがあるもんですね
25:Name_Not_Found
14/05/04 18:40:38.96
IE6-11
Fire最新
Google最新
で動作する
文字サイズを変更した時のイベントをキャッチしてアラートだしたいのだがリファレンス見ても文字サイズ変更のイベントがのっとらん
このままでは
非表示のテキスト入りオブジェクトをクリエイトしたのち
セットタイムアウトで関数を何度も呼び出してして要素の高さが変わったらアラート
と言うことをしなければならない
なんかセットタイムアウトを使わない良い方法あるか?
もちろんセットインターバルもなしで
26:Name_Not_Found
14/05/04 19:00:42.56
そんなイベント聞いたことないな
多分ないよ
27:Name_Not_Found
14/05/04 19:12:36.89
配列で返ってきた返り値を直接スカラー変数に代入することはどうやってもできないでしょうか?
ES6では出きるそうですが、ES3で。
見通しが悪くなるから一時変数は減らしたいんですよね~
関数言語的アプローチもそういうところから来てるんですかね
28:Name_Not_Found
14/05/04 19:19:46.22
PCが時間とともに進化していくのは必然
ということはあらゆるコードは自動的に高速化していくということ
だとするならば、筋のいいコードとは、見やすく保守性の高いコードではないだろうか?
むろん何度も深いスコープの変数にアクセスするよりは、一度ローカル変数に代入した方が
見やすく保守性もあがるので、ローカル変数に代入するという方針は基本的には正しいが、
速度面で避けていた関数言語的アプローチも、保守性の面からは採用すべきかもしれない。
29:Name_Not_Found
14/05/04 19:35:48.73
>>26
やっぱ無いのかー
30:Name_Not_Found
14/05/04 22:25:12.96
>>16
URLリンク(webcre8.jp)
31:Name_Not_Found
14/05/04 22:36:46.20
ブラケットって少し前にこのスレに話題になった時に試したけど
sublimeをパクろうとして失敗したくそエディターじゃん
今はマシになったの?
32:Name_Not_Found
14/05/04 23:51:45.61
>>25
iframe in フレームのスクロール変化でどや?!
33:Name_Not_Found
14/05/05 00:48:56.54
setTimeoutで呼ばれた関数の中から
またsetTimeoutで同じ関数を呼ぶ
ということを繰り返したら、スタックは増加しますか?
setTimeoutで遅れて呼ぶので、スタックの増加はないと思っていたのですが
妙なかくつきがあり、もしかしてスタックが積まれすぎてるせいでは?と思ったのです
34:Name_Not_Found
14/05/05 01:15:37.07
>>33
setTimeout自体は何も評価せずスケジュールだけ組んで即時に戻るから
コールスタックは積まれない
かくつきは一般的にそのスケジュールが
何か他の処理よりも後回しにされている
または他の処理にブロックされていることを意味する
35:Name_Not_Found
14/05/05 01:20:57.53
>>34
やっぱり積まれませんよね
ありがとうございます
36:Name_Not_Found
14/05/05 05:44:20.63
>>32
フレームか
JSで扱ったこと無いわ
ちょっとググってみる
ありがと
37:Name_Not_Found
14/05/05 11:25:50.14
>>28
たしかにそうかも
LEGACY用の処理とか、無駄なのがいつまでも残ってたりするし
いまだに//NN4とかw
38:Name_Not_Found
14/05/05 14:23:12.98
???
古い時代に書いたコードの話とは関係ないんだが
むしろ、そういうのを一々正すほうが無駄だろ
お前は過去に書いたコードを永久にサポートできるのか?
それともお前の知り合いに未だにNN用コードを新規で書く奴が要るのか?
それを一々気にするのが一番の無駄だが