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

みんなの評価 :
レスフィルター : (試験中)
http://jsbin.com/talim/2/edit
contenteditableなdivの中に、
hogeというリンクを設定しておきます
この文字をすべて削除します
そして再び文字を入力すると、
chromeだけですが、
入力した文字が何故か<u>タグで挟まれてしまいます
これは訳の分からない奇妙な挙動だと思います
これを防ぐにはどうしたらいいのでしょうか?
contenteditableなdivの中に、
hogeというリンクを設定しておきます
この文字をすべて削除します
そして再び文字を入力すると、
chromeだけですが、
入力した文字が何故か<u>タグで挟まれてしまいます
これは訳の分からない奇妙な挙動だと思います
これを防ぐにはどうしたらいいのでしょうか?
http://jsbin.com/talim/3/edit
ふと思いついて、aタグのスタイルを
text-decoration: none;
にしたら、uタグを付ける奇妙な挙動が消えました
これはバグですよね・・
ふと思いついて、aタグのスタイルを
text-decoration: none;
にしたら、uタグを付ける奇妙な挙動が消えました
これはバグですよね・・
http://jsbin.com/soxal/2/edit
aタグは関係ありませんでした
文字に色々なスタイルを適用しておいて、
それをすべて削除→文字入力
とすると、それまでのスタイルを再現しようとします
まったくひどい実装です
このスタイルの再現をJavaScriptでリセットすることは出来るのでしょうか?
aタグは関係ありませんでした
文字に色々なスタイルを適用しておいて、
それをすべて削除→文字入力
とすると、それまでのスタイルを再現しようとします
まったくひどい実装です
このスタイルの再現をJavaScriptでリセットすることは出来るのでしょうか?
Professional JavaScript for Web developersには
DOMの説明が詳細に書かれていますが
日本語の書籍でこのレベルのものはありますか?
DOMの説明が詳細に書かれていますが
日本語の書籍でこのレベルのものはありますか?
The cloneNode() method doesn’t copy JavaScript properties that you add to
DOM nodes, such as event handlers. This method copies only attributes and,
optionally, child nodes. Everything else is lost. Internet Explorer has a bug
where event handlers are also cloned, so removing event handlers before cloning
is recommended.
とありましたが、
cloneNodeで同時にイベントハンドラもクローンされるということは、
イベントハンドラはDOM要素のプロパティということでしょうか?
DOM nodes, such as event handlers. This method copies only attributes and,
optionally, child nodes. Everything else is lost. Internet Explorer has a bug
where event handlers are also cloned, so removing event handlers before cloning
is recommended.
とありましたが、
cloneNodeで同時にイベントハンドラもクローンされるということは、
イベントハンドラはDOM要素のプロパティということでしょうか?
JavaScript propertiesと書いてますが、そうは思ってませんでした
プロパティーならイベントリスナーをリスト的に読めたりすると思うのですが
そういう形で扱えませんよね?
プロパティーならイベントリスナーをリスト的に読めたりすると思うのですが
そういう形で扱えませんよね?
>Internet Explorer has a bug where event handlers are also cloned
なんでここ無視するん?
なんでここ無視するん?
IEにバグがあろうがなかろうが
イベントリスナーがDOMのプロパティーという事実には変わりないので
バグは本質じゃないでしょう
イベントリスナーがDOMのプロパティーという事実には変わりないので
バグは本質じゃないでしょう
DOMノードを親から切り離して、別の親に付けることはできますか?
クローン作成→それまでのノードを削除
で、結果的に移動させることはできそうですが
既にあるものをそのまま移動できたらコスト的にも一番いいと思います
クローン作成→それまでのノードを削除
で、結果的に移動させることはできそうですが
既にあるものをそのまま移動できたらコスト的にも一番いいと思います
>>364
ライブラリを使ったコードに修正されているようだけど、元々がライブラリなしなので意味がないのでは。
ライブラリを使ったコードに修正されているようだけど、元々がライブラリなしなので意味がないのでは。
>>365
DOMライブラリだって、JavaScriptの仕様じゃなくて
ブラウザが持ってるライブラリだし。
だいたいライブラリを使わないという条件なんて書いてないし
目的はDOMノードの移動なんだから問題ないでしょ。
目的を見失っちゃいかんよ。
DOMライブラリだって、JavaScriptの仕様じゃなくて
ブラウザが持ってるライブラリだし。
だいたいライブラリを使わないという条件なんて書いてないし
目的はDOMノードの移動なんだから問題ないでしょ。
目的を見失っちゃいかんよ。
わかりやすい釣りだなw
無駄かどうかは、自分で書いたコードの
行数で判断しろよ。どちらが時間がかかったか。
無駄かどうかは、自分で書いたコードの
行数で判断しろよ。どちらが時間がかかったか。
>>368 なんか周りと噛み合ってなくない?
ソースコードそのものじゃなくて、ライブラリーを当然のように使って、
使わないのが無駄と言うかのような態度が悪いって言われてるんだと思うよ。
多分。
そもそもロジック的な内容の質問なんだから、
ライブラリーを使って示すこと自体がアレだと思うし、
それで単純化できたとしても質問の本質的に適さないと思わない?
ソースコードそのものじゃなくて、ライブラリーを当然のように使って、
使わないのが無駄と言うかのような態度が悪いって言われてるんだと思うよ。
多分。
そもそもロジック的な内容の質問なんだから、
ライブラリーを使って示すこと自体がアレだと思うし、
それで単純化できたとしても質問の本質的に適さないと思わない?
じゃあこれで
document.append.apply(test1, test.childNodes)
document.append.apply(test1, test.childNodes)
そういう時は添字不要のfirstChild又はlastChildあたりがお手軽なのでは
あるいはchildNodesを後ろからループさせてinsertBeforeとかね
あるいはchildNodesを後ろからループさせてinsertBeforeとかね
こんな感じで
while( source.firstChild ){
destination.appendChild( source.firstChild )
}
while( source.firstChild ){
destination.appendChild( source.firstChild )
}
なるほど~
firstChildとか微妙に使い道が分からなかったのですが
こういう使い方が出来るんですね
ありがとうございました
firstChildとか微妙に使い道が分からなかったのですが
こういう使い方が出来るんですね
ありがとうございました
>>380
その方法はノードの数だけリフローが発生するのでDocumentFlagmentに入れて一度にappendChildする方がいいと思う。
その方法はノードの数だけリフローが発生するのでDocumentFlagmentに入れて一度にappendChildする方がいいと思う。
このJSはわかる人が見たら簡単なスクリプトなんでしょうか?
timers = []; の役割が全然わからないです。試しにこの配列の中を["あ", "い", "う"];にしても何も変わらず動きます。
あと、関数とは海水を真水に変える装置と考えると引数は海水で戻り値が真水という例えを見ました。
function runSlot(n) の処理部分はわかるのですが、ここでのnの意味がわかりません。なぜhtmlのid="num0" id="num1" id="num2"を
JSの("num"+n)でnの部分が自動で数字になって、それぞれを取得できるのか、なぜtimers[n]と書いているのかnは何の役割になっているのか
何度見返してもこの部分だけがわかりません。どなたか幼稚園児にでも理解できるくらいにかみ砕いて教えてもらえませんか?
他の部分はわかっても、その部分がわからないので「なんで動いているのか?」が理解できません。詳しい人助けてください・・
var timers;
function startSlot () {
timers = [];
runSlot(0);
runSlot(1);
runSlot(2);
}
function runSlot (n) {
document.getElementById("num"+n).innerHTML = Math.floor(Math.random() * 10);
timers[n] = setTimeout(function () {
runSlot(n);
}, 50);
}
startSlot();
timers = []; の役割が全然わからないです。試しにこの配列の中を["あ", "い", "う"];にしても何も変わらず動きます。
あと、関数とは海水を真水に変える装置と考えると引数は海水で戻り値が真水という例えを見ました。
function runSlot(n) の処理部分はわかるのですが、ここでのnの意味がわかりません。なぜhtmlのid="num0" id="num1" id="num2"を
JSの("num"+n)でnの部分が自動で数字になって、それぞれを取得できるのか、なぜtimers[n]と書いているのかnは何の役割になっているのか
何度見返してもこの部分だけがわかりません。どなたか幼稚園児にでも理解できるくらいにかみ砕いて教えてもらえませんか?
他の部分はわかっても、その部分がわからないので「なんで動いているのか?」が理解できません。詳しい人助けてください・・
var timers;
function startSlot () {
timers = [];
runSlot(0);
runSlot(1);
runSlot(2);
}
function runSlot (n) {
document.getElementById("num"+n).innerHTML = Math.floor(Math.random() * 10);
timers[n] = setTimeout(function () {
runSlot(n);
}, 50);
}
startSlot();
> あと、関数とは海水を真水に変える装置と考えると引数は海水で戻り値が真水という例えを見ました。
これか
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1315948363
とてもわかりにくかったです
本当にありがとうございました
これか
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1315948363
とてもわかりにくかったです
本当にありがとうございました
>>383
クロージャがわからないのか、timeoutID がわからないのか。
timeoutID は clearTimeout の為に定義される。それ以外の活用法はない。
例示コードでは timeoutID は活用されてないので無意味。事後処理として clearTimeout を使ったほうがいい。
http://developer.mozilla.org/ja/docs/Web/API/window.setTimeout
ところで、runSlot で実行順が保障されないのは大丈夫なのか。
本題とは関係なさそうたが、若干気になる。
クロージャがわからないのか、timeoutID がわからないのか。
timeoutID は clearTimeout の為に定義される。それ以外の活用法はない。
例示コードでは timeoutID は活用されてないので無意味。事後処理として clearTimeout を使ったほうがいい。
http://developer.mozilla.org/ja/docs/Web/API/window.setTimeout
ところで、runSlot で実行順が保障されないのは大丈夫なのか。
本題とは関係なさそうたが、若干気になる。
>>389
appendChildはリフローを発生させる処理だと思ったが、違ったのだろうか。
ブラウザは複数のリフロー処理をキャッシュするから問題ないという意味ならブラウザに負荷をかけるだけなので極力避けるべきだと思うのだが…。
(速い遅い以前に必要以上にCPUを消費する)
appendChildはリフローを発生させる処理だと思ったが、違ったのだろうか。
ブラウザは複数のリフロー処理をキャッシュするから問題ないという意味ならブラウザに負荷をかけるだけなので極力避けるべきだと思うのだが…。
(速い遅い以前に必要以上にCPUを消費する)
chromeでselectionオブジェクトの中を見ると
extentNodeというプロパティがありますが
これは何でしょうか?
http://developer.mozilla.org/en-US/docs/Web/API/Selection
ここにも載っていません
extentNodeというプロパティがありますが
これは何でしょうか?
http://developer.mozilla.org/en-US/docs/Web/API/Selection
ここにも載っていません
挿入位置がバラバラな時は逐一appendChildしてたけど
最悪bodyごとDocumentFlagmentにcloneNodeして弄ってから
replaceChildした方がマシなのかな
最悪bodyごとDocumentFlagmentにcloneNodeして弄ってから
replaceChildした方がマシなのかな
僕の脳内ベンチでは
DocumentFragmentの生成と貼り付けで二行も増えるからむしろ遅くなる
最適化されたネイティブコードさんに任せた方が速い
DocumentFragmentの生成と貼り付けで二行も増えるからむしろ遅くなる
最適化されたネイティブコードさんに任せた方が速い
selectionとかrange関係のところが複雑怪奇すぎます
JavaScriptでもっとも分かりにくいところではないでしょうか
このあたりを分かっている日本人はほとんどいないのでは?
JavaScriptでもっとも分かりにくいところではないでしょうか
このあたりを分かっている日本人はほとんどいないのでは?
親指シフト入力ソフトを使っていると、
ある条件でkeyupが発生しないことを発見しました
条件とはATOKとchromeを使い、文節確定した時です
keyupでフォームコントロールの変化を検知しているので、困ります
keyupの代わりに検知する方法はありますか?
ある条件でkeyupが発生しないことを発見しました
条件とはATOKとchromeを使い、文節確定した時です
keyupでフォームコントロールの変化を検知しているので、困ります
keyupの代わりに検知する方法はありますか?
どこからの参照を問題にしているのだ?
切れる切れないのどこが問題にされているのだ?
removeChildした要素をスクリプトの変数に代入してれば
その変数から参照されている、
という至極当たり前の話にしかならないし
代入していなければ、そのうちガーベジコレクトされる
という至極当たり前の話にしかならない
切れる切れないのどこが問題にされているのだ?
removeChildした要素をスクリプトの変数に代入してれば
その変数から参照されている、
という至極当たり前の話にしかならないし
代入していなければ、そのうちガーベジコレクトされる
という至極当たり前の話にしかならない
異言語間の循環参照を断ち切るためDOM→JSは弱参照で実装するノウハウが有る
だからルートから切り離されて、JSが離したノードは問答無用で捨てられる
実はこのせいで開放されるべきではないところで開放されてしまうケースもあるが目をつぶられてる
通常ハマることはないが一応知っておいた方がいい
だからルートから切り離されて、JSが離したノードは問答無用で捨てられる
実はこのせいで開放されるべきではないところで開放されてしまうケースもあるが目をつぶられてる
通常ハマることはないが一応知っておいた方がいい
removeChildして切り離された要素をaddChildしたら復活するの?



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [100%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.119 + (1002) - [97%] - 2014/10/3 15:30
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.123 + (966) - [97%] - 2020/10/20 2:30
- + JavaScript の質問用スレッド vol.103 + (1001) - [97%] - 2012/11/9 15:30
- + JavaScript の質問用スレッド vol.123 + (1002) - [97%] - 2015/4/27 23:30
- + JavaScript の質問用スレッド vol.143 + (753) - [97%] - 2020/4/19 5:00
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.120 + (1002) - [95%] - 2014/11/8 1:15
トップメニューへ / →のくす牧場書庫について