TypeError: Не удается найти функцию getElementById в объекте

Я делаю сценарии автоматизации, и мне нужно читать данные из iframe (для проверки содержимого). В моем коде Java

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("ECMAScript");
try
{
  scriptEngine.eval(new FileReader("readIFrameContent.js"));
}
catch (ScriptException e)
{
  e.printStackTrace();
}

и readIFrameContent.js есть

function getContentFromIframe(iFrameName)
{
    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;
    alert('content: ' + content);
}

Но я получаю ошибку.

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "документ" не определен. (№ 3) в строке № 3

Так что я погуглил решение и отредактировал функцию

function getContentFromIframe(iFrameName)
{
    var document = new Object();
    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;
    alert('content: ' + content);
}

и теперь ошибка

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: TypeError:
Не удается найти функцию getElementById в объекте [объект Object]. (№ 4) в строке № 4

Предложения, пожалуйста.

1 ответ

Я думаю, что вам не нужно утверждение var document = new Object(); Ваш код должен работать без этого утверждения.

Другие вопросы по тегам