0

次の 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]);
}
4

1 に答える 1

1

XPathResult は反復子っぽいようです。長さのプロパティはありません。

https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate

framesets.length未定義になります。要するに、Here Be Dragonsです。

于 2010-05-09T22:51:04.410 に答える