1

これをFirefox拡張機能で使用していますが、動作させることができません。

var allLinks = document.evaluate(
                        '//a[@href]', 
                        window.document, 
                        null, 
                        XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, 
                        null);
window.alert(allLinks);

これは警告し[object XPathResult]ます。ただし、以下は常にを返します0。(そして確かにページにリンクがあります)。

window.alert(allLinks.snapshotLength);
4

3 に答える 3

1

それがFirefox固有であり、新しいバージョンのみを使用すると仮定した場合.. querySelectorAllを使用できませんか?

document.querySelectorAll('a[href]')

また、DOMが完全にロードされたときにそれを実行していますか?何かにバインドしDOMContentLoadedます。

document.addEventListener('DOMContentLoaded', fn, false);

編集:あなたのxpathは私のために働きます。コンソールの既存のロードされたページで実行しました。何かが存在する前にクエリを実行していることを確認してください。

于 2010-07-28T19:02:22.833 に答える
0

あなたが聞きたくない答え-「私のために働く」。

この例を参照してください(私にとってはアラート3)。

これをテストしているブラウザとバージョンは何ですか?

于 2010-07-28T19:06:49.203 に答える
0

これはうまくいきました。

        var allLinks = top.document.getElementById("content").selectedBrowser.contentDocument.evaluate(
                            treeView.model[0].xpath, 
                            top.document.getElementById("content").selectedBrowser.contentDocument, 
                            null, 
                            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, 
                            null);
于 2010-07-29T19:23:23.740 に答える