TypeError: Не удается найти функцию getElementById в объекте - PullRequest
1 голос
/ 03 января 2012

Я делаю сценарии автоматизации, и мне нужно прочитать данные из 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 Ответ

0 голосов
/ 03 января 2012

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

...