問題タブ [document.evaluate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
596 参照

javascript - ユーザースクリプトを Firefox/Chrome から Internet Explorer 9 に変換しますか?

私はコンピューター サイエンスやプログラミングを専攻していない学生ですが、外国人でインターネット用語を理解していない両親のためにスクリプトを探していました。

userscripts.org で以下のスクリプトを見つけました (すべて作者の功績によるものです)。しかし、私の両親は頑固すぎて IE9 から Chrome や Firefox に切り替えることができないので、IE7Pro をダウンロードしてそこにスクリプトをインストールしました。

ここでの問題は、IE9 にインストールされているユーザー スクリプトがまったく機能しないように見えることであり、その理由を突き止めようとしています。Chrome/Firefox と Internet Explorer の JavaScript に基本的な違いはありますか?

これらを修正して IE で動作させるにはどうすればよいですか? 私は C プログラミングの入門クラスを受講しただけで、この分野の経験はほとんどないので、誰かが簡単に説明してくれると助かります。

これが参照用のコードです。誰かがどこで/なぜそれが機能しないかを指摘できれば、それは大きな助けになります。長すぎず、本当に学ぶ必要のないことを学ぶのに数え切れないほどの時間を節約できます. どうもありがとう。

0 投票する
1 に答える
1964 参照

javascript - document.evaluate は iterateNext で null を返します

xpathを使用してxmlドキュメントをナビゲートする方法について、w3スクールの例に従っていますが、iterateNext()から返されるものはすべてnullです。以下は私の blog.xml ファイルです。

これは私のhtmlスクリプトです。結果が常にnullを返すため、whileステートメントに到達することはありません。これは見落としている可能性がありますが、w3学校であれば実際に機能するはずだと思いました。

0 投票する
1 に答える
417 参照

typescript - TypeScript で document.evaluate を使用する

document.evaluateTypeScript でどのように使用できますか? これは型のメソッドではないDocumentため、使用しようとすると TypeScript でエラーが発生し、コードをコンパイルできません。

それを定義に追加しDocumentたり、コンパイルエラーを無視したりする方法はありますか?

0 投票する
0 に答える
80 参照

javascript - document.evaluate()を使用せずに、javascriptを使用してxpath要素を取得することは可能ですか?

これを実行したい理由は、document.evaluate()がIEで機能しないためです。代替手段はありますか?

0 投票する
1 に答える
1554 参照

android - document.evaluate が適切な TextNodes XPath を返さない

Android用の「ハイライター」をWebViewで作成しています。次の関数を使用して、HTML で選択した範囲の XPath 式を取得しています。

/HTML[1]/本文[1]/部[1]/部[3]/部[1]/部[1]/テキスト()[5]

今、私はjavascriptでこの関数を使って上記のXPath式を評価しています

しかし、私はstartNode 'null'を取得しています。

しかし、興味深い点は次のとおりです。

この'/HTML[1]/BODY[1]/DIV[1]/DIV[3]/DIV[1]/DIV[1]' XPath 式を同じ関数を使用して評価すると、適切なノード、つまり a 「分割」。

2 つの XPath の違いは、前の XPath には textNode が含まれ、後で div のみが含まれていることです。

しかし、同じことがデスクトップ ブラウザでも問題なく機能します。

編集された サンプル HTML

XPath の取得:

XPathを作成する関数:

私は XML ではなく、webview で HTML を使用しています。

Rangy のシリアライズとデシリアライズを使用してみましたが、Rangy の「シリアライズ」は正しく機能しますが、「デシリアライズ」は機能しません。

何かアイデアはありますか?

アップデート

最終的に問題の根本原因を突き止めました (まだ解決策ではありません :( )

` android webview で正確に何が起こっているのか. -->> どういうわけか、android webview は読み込まれた HTML ページの DOM 構造を変更しています。DIV には TEXTNODES が含まれていませんが、DIV からテキストを選択しているときに、その DIV のすべての行に対して TEXTNODE を取得しています。たとえば、デスクトップ ブラウザの同じ HTML ページと同じテキスト選択の場合、webview から取得する XPath は、デスクトップ ブラウザで指定されたものとはまったく異なります



0 投票する
1 に答える
4185 参照

javascript - document.evaluate は、一部のページ\サイトの singleNodeValue で常に null を返します

ページ: http://h4z.it/View/-20100729_designtea.jpg

コンソールで実行するコード: document.evaluate("//img",document,null,9,null).singleNodeValue

また

document.evaluate("//a",document,null,9,null).singleNodeValue

あるいは

document.evaluate("//html",document,null,9,null).singleNodeValue

結果 (Chrome と Firefox の両方でテスト済み):null

ページが document.evaluate を上書きしたと思ったが、それは表示される

document.evaluate

function evaluate() { [ネイティブ コード] }

delete document.evaluate役に立たないので、他に何が壊れますdocument.evaluateか?

0 投票する
1 に答える
598 参照

javascript - JS: document.evaluate(".//html"... と document.evaluate("//html"... の違い)

でドット ( .) は重要document.evaluateですか? テストしましたが、何もしないようです

mozilla チュートリアルでは例で使用しています https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate

0 投票する
1 に答える
860 参照

javascript - document.evaluate の iterateNext() から常に null 値を取得する

スクリプトで以下のコードを使用すると、常に e に対して null を取得します

しかし、Chrome コンソールでこのコマンドを使用すると、正しい値を取得できますが、なぜこれが起こるのでしょうか?

jsファイルとhtmlファイルの完全なコードは次のとおりです

test.js

html

0 投票する
1 に答える
235 参照

javascript - ポリマーは document.evaluate (xpath) を壊します

Linux で Chrome 34.0.1847.116 を使用していますが、単に Polymer.js をロードすると、document.evaluate が機能しなくなり、奇妙なエラーが返されます。

「エラー: 'Document' で 'evaluate' を実行できませんでした: 指定されたコンテキスト ノードが null です。 at エラー (ネイティブ)

これが例です

http://jsbin.com/jadir/2/edit?html,コンソール,出力

他に連絡がない限り問題を作成しますが、誰かが洞察を持っている場合に備えてここに投稿します。

0 投票する
2 に答える
286 参照

javascript - xpathのみを使用して選択ボックスの値を変更する

現在、ロボティウムを使用して、Android Web ビューで一連のアクションを記録しています。robotium には、選択ボックスの値を変更できない既知のバグがあります。テストの実行中にこれに対処するために、別の JavaScript インジェクションを作成して変更しています。名前とIDで機能しますが、名前またはIDが利用できない場合に備えて、xpathも使用できる必要があります。

現時点では、次を使用して、選択ボックスの名前と ID を使用してこれを行うことができます。

selectBox = document.getElementById(identifyingValue);

また

selectBox = document.getElementByName(identifyingValue);

この後、選択ボックスの値を必要な値に変更するメソッドを作成できます。問題は、選択ボックスの ID または名前を取得できないことがあり、Xpath を介してこれを行う同様の方法がないことです。

selectBox = document.getElementByXpath(identifyingValue);

私のコードは現在次のようになっています。

これまでのところ、ID と名前を最初に使用し、最後の手段として xpath を使用しようとしていることがわかります。

Xpath で要素を選択し、その値を変更したり、同様のアクションを実行したりできますか。ヘルプやご意見をいただければ幸いです。