私はChromeで以下の試験HTMLページを実行すると、私はデバッグコンソールで以下を参照してください。parentNodeがJavascriptの内部クロージャで失われていますか? Chromeのバグ?
Has parent? true
Has parent? false
私は、(それは他のブラウザでは発生しません)右このクロームのバグと仮定してアムまたは何らかの理由でこれを行う権利がChrome内にありますか?それは私のWebアプリケーションの1つにバグをもたらし、最終的にこのスニペットを分離してコアの問題を再現しました。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body class="">
<script>
function testDoodle() {
var testParentEl = document.createElement('div');
var testChildEl = testParentEl.appendChild(document.createElement('div'));
document.body.innerHTML+=('Has parent? ' + !!testChildEl.parentNode+'<br>');
console.log('Has parent? ' + !!testChildEl.parentNode);
setTimeout(function() {
document.body.innerHTML+=('Has parent? ' + !!testChildEl.parentNode+'<br>');
console.log('Has parent? ' + !!testChildEl.parentNode);
},
2000);
return;
}
testDoodle();
</script>
</body>
</html>
EDIT:ここ
は、テストページで私はクローム49.0.2623.87メートル(64ビット)でWindows 7上でテストしてることに言及している必要があります。また、Chrome 49でOSX 10.11.2を再現することができました。
また、時にはtrue/trueとtrue/falseを表示することがあります。問題を目で確認するには、ページを数回リロードする必要があります。私には分かりませんが、デバッグツール(コンソール)も開いている必要があります。
ありがとうございました。
Chromeで動作する48 OSX – elclanrs
再現できません(Chrome 48.0.2564.109)。 'testParentEl'が呼び出し間で突然変異していないことを確かめますか? – Bergi
私は、Windows 7でChrome 49.0.2623.87 m(64ビット)を使用してテストしていることを述べておきます。 また、true/trueとtrue/falseを表示することがあります。問題を目で確認するには、ページを数回リロードする必要があります。私には分かりませんが、デバッグツール(コンソール)も開いている必要があります。 – logidelic