从本地地址在iframe上进行document.evaluate

时间:2018-12-19 19:51:19

标签: javascript xpath iframe document.evaluate

我想从表格单元中检索数据。该表已加载到iframe中。我发现我可以使用xpath和document.evaluate()来做到这一点

这是我的脚本:

<iframe id="ext" src="http://192.168.1.10/values" width="400px" height="400px" ></iframe>

<script>
var myIframe = document.getElementById('ext');
myIframe.onload = function () {
    var result =  document.evaluate("/iframe/html/body/div[2]/table/tbody/tr[3]/td[3]", myIframe, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
console.log(result); 
console.log("done"); 
}
</script>

在控制台中打印的结果是null(我检查了本地地址上的xpath,它检索了正确的值)。

如果我在控制台中输入myIframe,它将返回以下内容:

<iframe id="ext" src="http://192.168.1.10/values" width="400px" height="400px" ></iframe>
#document 
<! doctype html> 
<html> 
<head></head>
<body></ body>
</html > 
</iframe> 

我可以扩大身体直到我要取回的细胞。

我尝试将document.getElementById('ext');替换为document.getElementById('ext').contentDocument;,这是我打印myIframe时得到的:

#document 
<html> 
<head></head>
<body></ body>
</html> 

我无法展开body标签,但是页面上的表加载成功。

我做错了什么?为什么我得到null而不是单元格值?

0 个答案:

没有答案