これはアークエンジェル達の肖像画だな。あいつら、こんなもの飾って何のつもりだ?
window.onload = function(){ var iframe = document.getElementsByTagName("iframe")[0]; iframe.contentDocument.designMode = "on"; iframe.contentDocument.addEventListener("keyup", function(){ var range = iframe.contentWindow.getSelection().getRangeAt(0); if(range.startContainer.nodeValue == "a ") alert("a[space]"); if(range.startContainer.nodeValue == "a") alert("a"); if(range.startContainer.nodeValue == "a a") alert("a[space]a"); }, false); }
どーうしたイーノック? ずぶ濡れじゃないか
入力値 | Chrome(7.0.517.44) | Firefox(3.6.11) | Opera(10.63) |
---|---|---|---|
"a" | alert発生 | alert発生 | alert発生 |
"a " | 何も起きない | alert発生 | 何も起きない |
"a a" | alert発生 | alert発生 | alert発生 |
あーこれ?
これは傘だよ。
@umimaruさんとか@dynamis2さんとか@takkkunに「大丈夫か?」って聞かれたので「一番良いアドバイスを頼む」と答えてないけど色々教えて頂きました。
「比較演算子の罠なんじゃね?」とか「"\n"が文字列に入ってるんじゃね?」とかアドバイスを頂いたんですが、どうやらコレそういう問題じゃないよーな気がするんだぜ……
最初はChromeのバグかと思ったんだけど、Operaで試したら同じ挙動を示したのでバグなのかどうか判別しづらいんだよね……
ただ、Chromeのデバッガは入力値が"a "の時、range.startContainer.nodeValueの値も"a "なので、==演算子でtrueを返さないのはなんかとても気持ち悪いんだよね