问题标签 [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.
javascript - 将用户脚本从 Firefox/Chrome 转换为 Internet Explorer 9?
我是一名非计算机科学或编程专业的学生,但我一直在为我的父母寻找一个脚本,他们是外国人并且不懂互联网术语。
我在 userscripts.org 上找到了下面的脚本(全部归功于作者),它就像一个魅力。但是,我的父母太固执,无法从 IE9 切换到 Chrome 或 Firefox,所以我下载了 IE7Pro 并在那里安装了脚本。
这里的问题是安装在 IE9 上的用户脚本似乎根本不起作用,我试图找出原因。Chrome/Firefox 与 Internet Explorer 的 javascript 是否存在基本差异?
我该如何解决这些问题以使其在 IE 中工作?我只上过入门的 C 编程课程,在这个领域几乎没有经验,所以如果有人能简单地向我解释一下,那就太好了。
这是供参考的代码,如果有人可以指出它在哪里/为什么不起作用,那将是很大的帮助。它不会太长,它会为我节省无数小时来学习一些我并不真正需要学习的东西。太感谢了。
javascript - document.evaluate 使用 iterateNext 返回 null
我一直在关注 w3 学校关于使用 xpath 浏览我的 xml 文档的示例,但是我从 iterateNext() 返回的所有内容都是空的。下面是我的 blog.xml 文件。
这是我的 html 脚本,while 语句永远不会到达,因为结果总是返回 null,这可能是我忽略的东西,但我认为如果它在 w3 学校它应该真的有效。
typescript - 在 TypeScript 中使用 document.evaluate
如何document.evaluate
在 TypeScript 中使用?它不是该Document
类型的方法,因此当我尝试使用它时,TypeScript 会生成错误并且不允许我编译代码。
有什么方法可以将它添加到编译错误的定义中Document
或忽略编译错误?
javascript - Is it possible to get an xpath element using javascript, without using document.evaluate()?
The reason I wish to do this is because document.evaluate() does not work in IE. Is there an alternative?
android - document.evaluate 不返回正确的 TextNodes XPath
我正在 WebView 中为 Android 创建“荧光笔”。我通过如下函数获取 HTML 中选定范围的 XPath 表达式
/HTML[1]/BODY[1]/DIV[1]/DIV[3]/DIV[1]/DIV[1]/text()[5]
现在我正在通过 javascript 中的这个函数来评估上面的 XPath 表达式
但我得到了 startNode 'null'。
但是,这是有趣的一点:
如果我使用相同的函数评估这个'/HTML[1]/BODY[1]/DIV[1]/DIV[3]/DIV[1]/DIV[1]' XPath 表达式,它会给出正确的节点,即'div'。
两个 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 与桌面浏览器中给出的 XPath 完全不同
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 但它显示
文档.评估
函数评估(){[本机代码]}
并delete document.evaluate
没有帮助,那么还有什么可以打破的document.evaluate
呢?
javascript - JS:document.evaluate(".//html"... 和 document.evaluate("//html"...?
点 ( .
) 重要document.evaluate
吗?我测试了它似乎没有做任何事情
mozilla 教程在示例中使用它https://developer.mozilla.org/en-US/docs/Web/API/document.evaluate
javascript - 总是从 iterateNext() 为 document.evaluate 获取空值
在脚本中使用下面的代码时,e 总是为 null
但是在 Chrome 控制台中使用这个命令,e 可以得到正确的值,为什么会发生这种情况?
这是js文件和html文件的完整代码
测试.js
html
javascript - 聚合物破坏 document.evaluate (xpath)
我在 Linux 上使用 Chrome 34.0.1847.116,如果只是加载 polymer.js,则 document.evaluate 不再有效,并返回奇怪的错误:
“错误:无法在'文档'上执行'评估':提供的上下文节点为空。在错误(本机)
这是一个例子
http://jsbin.com/jadir/2/edit?html,控制台,输出
除非我听到其他消息,否则我会创建一个问题,但在这里发布以防有人有一些见解。
javascript - 仅通过 xpath 更改选择框的值
我目前正在使用 robotsium 在 android web 视图中记录大量操作。robotsium 中有一个已知错误,它不允许您更改选择框的值。为了在测试运行时解决这个问题,我正在创建另一个 javascript 注入来更改它。它适用于名称和 ID,但它还需要能够使用 xpath,以防名称或 ID 不可用。
目前,我可以使用选择框的名称和 ID 执行此操作:
selectBox = document.getElementById(identifyingValue);
或者
selectBox = document.getElementByName(identifyingValue);
在此之后,我可以创建一个方法来将选择框的值更改为我想要的值。问题是有时我无法获取选择框的 ID 或名称,并且没有类似的方法可以通过 Xpath 执行此操作,即:
selectBox = document.getElementByXpath(identifyingValue);
我的代码目前如下所示:
到目前为止,您可以看到我正在尝试首先使用 id 和 name,并将 xpath 作为最后的手段。
我可以通过它的 Xpath 选择一个元素,然后更改它的值或执行类似的操作。任何帮助或输入将不胜感激。