evaljs возвращает ноль, хотя это не должно быть? - PullRequest
0 голосов
/ 25 февраля 2019

Следующий код ...

splash:evaljs('document.querySelectorAll("iframe.iframe-container.js-oddset-game-iframe")[0].contentDocument.querySelectorAll("td.leftText a.eventLink").length')

... возвращает 8 - т.е. в массиве 8 узлов.

Однако, когда я тогда пытаюсь вернуть nodeList (массив) напрямую, результат равен нулю?Очевидно, что таблица должна быть возвращена, поскольку массив возвращается из кода javascript.

Это ошибка в Splash?Разве Splash не может обрабатывать доступ к элементам в фреймах?У меня тоже есть опция --js-cross-domain-access.

1 Ответ

0 голосов
/ 25 февраля 2019

Это не ошибка.iframes доступны только при использовании конечной точки render.json с параметром iframes=1.При использовании этого вы не можете запустить пользовательский скрипт Lua.

См. Документацию: https://splash.readthedocs.io/en/stable/api.html#render-json

И этот ответ: https://stackoverflow.com/a/44682917/4082726

...