次の JavaScript を Firefox 3.6.3 で実行するFRAMESETと、ドキュメント内のすべての要素が削除されるのに、代わりに XPath 式を使用してFRAMESET要素を選択する同様のスクリプトが削除されないのはなぜですか? 単に要素document.evaluate()を一致させることができないのですか? FRAMESETXPath 式にエラーはありますか? 他のエラーはありますか?
FRAMESETメソッドを使用してすべての要素を選択しますdocument.getElementsByTagName()(成功):
var framesets = document.getElementsByTagName('frameset');
for (var i = 0; i < framesets.length; i++) {
framesets[i].parentNode.removeChild(framesets[i]);
}
FRAMESETXPath 式を使用してすべての要素を選択します (失敗):
var framesets = document.evaluate("//frameset", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < framesets.length; i++) {
framesets[i].parentNode.removeChild(framesets[i]);
}