2011-01-18 2 views
2

У меня возникают аналогичные проблемы сПочему мой Javascript возвращает [объект HTMLScriptElement] вместо ожидаемого текста?

unable to run an external javascript using a bookmarklet.

Но я выполняю свой JavaScript внутри приложения Java, введя заголовки сценариев в текущую DOM, загруженную через Java-приложение.

Эта проблема возникает случайно. В некоторых случаях он возвращает [object HTMLScriptElement] и другие времена возвращает текст ...

Когда я alert() объект, он возвращает текст!

Я пробовал return String(hi);, но все равно никакого эффекта.

function returnsomeText(){ 
    var hi = someArray.join(':'); 
    alert(hi); //returns text:text:text:text as expected. 
    return hi; //returns [object HTMLScriptElement] 
} 

Я очень смущен, потому что это вызывает эту проблему! Если JavaScript возвращает [object HTMLScriptElement], то мое приложение Java не сможет обработать текст.

Этот вопрос более подробно здесь:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException when trying to execute Javascript

+2

Что такое 'someArray'? Как вы можете сказать, что он возвращает '[object HTMLScriptElement]'? –

+0

, если все остальное не работает, я думаю, вы могли бы попробовать '' '+ hi', чтобы заставить его быть строкой. что на самом деле не отвечает на вопрос. – Spudley

+0

@Spudley: '[object HTLMScriptElement]' является результатом принуждения элемента '

0

TRY добавления .text где-нибудь:

function returnsomeText(){ 
    var hi = someArray.join(':'); 
    alert(hi); //returns text:text:text:text as expected. 
    return hi.text; 
} 

ЗДЕСЬ демо:

document.write(document.body.children[3]); //writes [object HTMLScriptElement] 
document.write(document.body.children[3].text); //writes text data 
Смежные вопросы