document.evaluate iframe с локального адреса - PullRequest
0 голосов
/ 19 декабря 2018

Я хотел бы получить данные из ячейки таблицы.Эта таблица загружается в 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> 

Я могу расширить тело до ячейки I, когда нужно извлечь.

Я попытался заменить document.getElementById('ext'); на document.getElementById('ext').contentDocument;, и вот что я получаю, когда печатаю myIframe:

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

И я не могу развернуть тег body, но таблица на странице загружается успешно.

Что я делаю не так?Почему я получаю null вместо значения ячейки?

...