のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,474,336人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - window.open + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
151 : Name_Not - 2009/10/17(土) 20:28:17 ID:??? (+39,+11,-3)
xとy座標指定するときにうっかり0の存在忘れそうになるんだがどうしたらいい
152 : Name_Not - 2009/10/17(土) 20:55:31 ID:??? (+66,+29,-16)
>>140
話にならん、教科書レベルからやり直せ
153 : Name_Not - 2009/10/17(土) 21:14:11 ID:??? (+41,-29,-4)
>>152
だからXHTMLじゃなくて、JavaScriptの話だろ?
154 : Name_Not - 2009/10/17(土) 21:26:38 ID:??? (+63,+29,-1)
>>153
そう思ってんならお前も出直せ
155 : Name_Not - 2009/10/17(土) 21:27:28 ID:??? (+71,+24,+0)
あえて言うならSGMLの話かな
156 : Name_Not - 2009/10/17(土) 21:28:24 ID:??? (+45,+29,-13)
馬鹿の一つ覚え
157 : Name_Not - 2009/10/17(土) 21:36:59 ID:??? (+56,+29,-1)
この話は>>123で終わってるし
158 : Name_Not - 2009/10/17(土) 21:44:38 ID:??? (+57,+29,-9)
結局「なんとなく」でしか理解してなくて
きちんと説明できる奴はいないんだな
159 : Name_Not - 2009/10/17(土) 21:49:37 ID:??? (+69,+29,-16)
ぐぐってみた
タグとして認識されてしまうから
script 要素内に「<」「&」を書いてはならない
→>とかであらわせばおk?
160 : Name_Not - 2009/10/17(土) 21:58:25 ID:??? (+49,+11,+0)
>>155
あえて言うならXMLだろ
161 : Name_Not - 2009/10/17(土) 22:02:04 ID:??? (+13,-30,-71)
つまり>>117をこうしろってことか?
document.getElementById("dispAreaX").innerHTML = "X : " + x;
document.getElementById("dispAreaY").innerHTML = "Y : " + y;
162 : 135 - 2009/10/17(土) 22:02:46 ID:??? (+57,+29,-49)
乱数の質問者です。みなさんご回答ありがとうございました。コードと
か読ませて頂きましたが余計分からなくなりました(笑
163 : Name_Not - 2009/10/17(土) 22:10:47 ID:??? (+10,-30,-251)
・JavaScriptとHTMLを連携させるためにDOMという概念を使ってアクセスしている
・innerHTML,innerText,textContentはDOM木を破壊する(再構築される)ので要素の書き換えのために使うべきではない
・innerHTML,innerTextは、元はMSが勝手に作った独自プロパティ
・IEのシェアが大きすぎるためやむを得ず他のブラウザも追従した
・要素を作るにはcreateElementとcreateTextNode、要素を追加するにはappendChild、
 削除するにはremoveChild、置き換えるにはreplaceChildと専用のプロパティが存在する。
・速度的にはinnerHTMLが早い(纏めてパースするため)

たぶんこんな感じ。記憶が正しければ
164 : Name_Not - 2009/10/17(土) 22:11:32 ID:??? (+46,+28,+0)
失礼なやつ
165 : Name_Not - 2009/10/17(土) 22:14:56 ID:??? (+27,-18,-43)
>>159
外部のscriptファイルを読み込めばおk
確かに>>115は直接書いちゃってるから駄目だな

つまりなんだ、独自拡張だからinnerHTMLは駄目だと言ってるのか
XHTMLの話じゃないっしょ
166 : Name_Not - 2009/10/17(土) 22:22:04 ID:??? (+47,-22,-17)
>>163
なるほど。
正解はreplaceChildだが、速度を考えれば慣例化してるinnerHTMLって感じになるか?
167 : Name_Not - 2009/10/17(土) 22:31:33 ID:??? (+63,+29,-9)
>>166
どちらが正解とかそういう問題じゃないね
あえて言うなら状況に応じて使い分けるのが正解
168 : Name_Not - 2009/10/17(土) 22:32:45 ID:??? (+62,+29,-63)
innerHTMLはHTML5に含まれる(ことになっている)。
今更仕様的に非推奨みたい書くのは時代遅れ。

まあ、イベントリスナーが消えたり、scriptが実行されたりとか、
素人が使うとミスりやすいのは事実。
169 : Name_Not - 2009/10/17(土) 22:34:03 ID:??? (+64,+29,-87)
無粋を承知でまとめるとinnerHTMLは
DOMツリーを壊すからいかんと言っているのと
#PCDATAだからいかんと言っているのと2派いて
片方しか理解してない奴が数名いる感じ
170 : Name_Not - 2009/10/17(土) 22:34:39 ID:??? (+9,-30,-120)
プロパティじゃなかった。メソッドの間違いだった、
innerHTML,innerText, ...etcがプロパティだ
>>166
速度より~.innerHTML = "String"みたいに代入だけで置き換えられるのが一番大きいと思う

replaceChildだと代入みたいに単純には出来ない
~.replaceChild([置換後のノード],[置換前のノード]);
171 : Name_Not - 2009/10/17(土) 22:36:26 ID:??? (+2,-25,-13)
昔のMozillaのinnerHTMLは死ぬほど遅かった
172 : Name_Not - 2009/10/17(土) 22:54:36 ID:??? (+53,-29,-144)
>>169
もしかして

・innerHTML使うと多くの場合でリテラルに<>が出現する
・XHTMLのインラインスクリプトで<>は使えない
→だからXHTMLでinnerHTMLは使うな

というずれた主張してるヤツがいるってことか
>>129の意味とかやっとわかったわ

つーかインラインスクリプトはCDATAで括るのがXHTMLの常識じゃなかったのか?
実態参照でも別ファイルでも構わんけどさ

DOMツリー云々は>>6でおk?
173 : Name_Not - 2009/10/17(土) 23:14:25 ID:??? (+0,-29,-11)
>>172
>つーかインラインスクリプトはCDATAで括るのがXHTMLの常識
174 : Name_Not - 2009/10/17(土) 23:33:28 ID:??? (+65,+29,-23)
>>172さんよろしかったら「正しい知識を付けたい人のためのJAVASCRIPT」講座やってください
175 : Name_Not - 2009/10/18(日) 00:22:10 ID:??? (+64,+29,-108)
エスケープもできない奴にinnerHTMLを与えるなってことだろ
innerHTMLに限らずdocument.writeだってそう
まともにエスケープできてるものなんてまず見ない

だからHTML5で妙な構文修正やら入ったんだぜ
よかったなお前ら、ブラウザ様に感謝しろ

それでもscript内の</は駄目だからバカの一つ覚えでこれだけは避けろ
176 : Name_Not - 2009/10/18(日) 00:31:07 ID:??? (+37,-29,-15)
>>175
訂正
バカの一つ覚えでscript内を<!--...//-->で囲め
</を避けるのは高度過ぎたな
177 : Name_Not - 2009/10/18(日) 00:50:32 ID:??? (+65,+29,-16)
>>176
だからそれXHTMLで通用しないからバカの一つ覚えになってない
178 : Name_Not - 2009/10/18(日) 01:11:13 ID:??? (+87,+29,-11)
賢いつもりのバカは声がでかいぶんただのバカより厄介だな
179 : Name_Not - 2009/10/18(日) 01:20:57 ID:??? (-1,-29,-36)
XHTMLで通用しないってのも時代遅れ感あるな。
わざわざ Content-Type: application/xhtml+xml 使うようなモノ好きな人はそんなことは百も承知だろうし。
180 : Name_Not - 2009/10/18(日) 01:31:06 ID:??? (+12,-30,-104)
>>177
ほとんどの奴はXHTMLをtext/htmlにしているから事実上HTMLと同じ
application/xmlなXHTMLを書ける奴なら>>115のようなミスはしない

HTML5は非XML構文でも<br/>を許すようにした
HTML5は非XML構文でscriptなど特定の要素内でのみ使える新構文<!--...-->を導入した
(これはコメントではない)
これらによりSGML互換の夢は完全に潰えたがそれはどうでもいい

バカは無理してXHTMLを書くな
HTMLにしとけ、な
181 : Name_Not - 2009/10/18(日) 01:37:17 ID:??? (+41,+13,-17)
てかスクリプトは別のファイルに書いとけよ
182 : Name_Not - 2009/10/18(日) 03:07:56 ID:??? (+69,+29,-23)
>>178
空っぽの容器が一番大きな音を立てるんだぜ?
183 : Name_Not - 2009/10/18(日) 09:40:27 ID:4XCaQKiu (+63,+29,-40)
JavaScriptでブラウザーのステータスバーの文字を変更できますが、
これって何のためにあるのでしょうか。ユーザビリチィの点で問題で
はないでしょうか。悪意のあるスクリプトが書けるようにどうし
て放置されているのでしょうか。
184 : Name_Not - 2009/10/18(日) 10:11:11 ID:??? (+36,+8,-9)
おかげでJavaScript自体オフにされちゃうからなぁ
JavaScript以外の言語、HTMLとかでも言えるけど
特にIE
185 : ペ・ヨンジュン - 2009/10/18(日) 10:38:39 ID:??? (+66,+29,-50)
>>183
ごめんけどRPG作ってた頃に
ブラウザ互換が面倒でよく使ってたわ
友達からはまあまあ好評だったけどなぁ
186 : Name_Not - 2009/10/18(日) 10:53:01 ID:??? (-1,-29,+0)
marquee要素やtarget属性的な
187 : Name_Not - 2009/10/18(日) 14:15:07 ID:??? (+57,+29,-21)
問題があるのはわかってるけど、消したくても互換性のために消すわけ
にいかないというところだと思う。

188 : Name_Not - 2009/10/18(日) 18:47:01 ID:??? (-1,-29,-20)
setTimeoutとsetIntervalどっち使ったらいいかがわかりません。
場合によって使い分けするものなのか、好みなのか
どっちなんでしょうか
189 : Name_Not - 2009/10/18(日) 19:01:11 ID:??? (+57,+29,-32)
誤差しかないから好みでいいときもあるけど、基本は使い分け
191 : 190 - 2009/10/18(日) 19:26:30 ID:2WeTZpL7 (-20,+29,-2)
失礼しました。

私の勘違いでした。ちゃんとデフォルトの動作はキャンセルされてました;
192 : Name_Not - 2009/10/19(月) 01:30:34 ID:??? (+18,-29,-28)
クラス内のメソッドに対してクラス内で

  window.setInterval(this.Foo, 1000);

としても動作しないのですが何が問題なのかご教授よろしくお願い致します。
193 : 192 - 2009/10/19(月) 01:36:38 ID:??? (-1,-29,-25)
スミマセン、自己解決ですorz
this.Foo側で読み込んでいたメソッドにバグがあったようです。
スレ汚し申し訳ないです。
194 : Name_Not - 2009/10/19(月) 01:38:31 ID:??? (+31,-29,-3)
this.Foo 内のコードに this が書かれてるに 2 ペソ。
195 : 192 - 2009/10/19(月) 01:44:24 ID:??? (+37,+29,-17)
>>194
正解です、1000万ペリカ進呈いたします。w
どうしてエラーになるんですか?
197 : Name_Not - 2009/10/19(月) 02:01:17 ID:??? (+7,-30,-95)
>>195
今の場合、this.Foo に代入されてる function オブジェクトを「関数」として呼び出しているから。
this には Global オブジェクト(window オブジェクト)がセットされる。

コンテキストが分からないから何とも言えないが、

var that = this;
window.setInterval(function() { that.Foo(); }, 1000);

ならうまくいきそうな気がする。
198 : Name_Not - 2009/10/19(月) 02:01:49 ID:??? (+3,-29,-3)
>>195
callとかapplyを使えばOK
199 : Name_Not - 2009/10/19(月) 02:38:24 ID:??? (+57,+29,-14)
やーね、また Geno が流行ってきてるの?
200 : Name_Not - 2009/10/19(月) 03:08:06 ID:??? (-3,-22,-13)
>>196,197,198
ご丁寧な解説ありがとうございました。^ ^
なぞが解けました。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - window.open + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について