[RESOLVIDO] Editor Html: alterar o conteúdo via Java Script

Saudações,

Tenho uma aplicação de controle com diversos campos, sendo um deles um campo Editor HTML chamado “observacoes”.
Num dos campos (tipo label) deste controle, estou carregando via “IFRAME” uma aplicação BLANK, que possui rotinas em PHP e Java Script.
Preciso altera o campo Editor Html (observacoes) que está no Controle, utilizando uma função JavaScript que está na aplicação Blank (carregada no Iframe).
Já tentei das seguintes formas:

  • document.getElementById(‘observacoes’).value = ‘Um texto qualquer’;
  • document.getElementById(‘observacoes’).text = ‘Um texto qualquer’;
  • parent.document.F1.observacoes.value = ‘Um texto qualquer’;
    Nenhuma delas está conseguindo alterar o campo Editor Html (observacoes).
    Cabe salientar que os demais campos do formulário CONTROLE, que não são Editor Html (select, texto, numero), eu consigo alterar utilizando a sintaxe:
  • parent.document.F1.OUTROS-CAMPOS.value = ‘Um valor qualquer’;
    Certamente, quando for um campo Editor Html, a forma de acesso ao conteúdo do mesmo deve ser diferente dos demais.
    Alguém teria alguma idéia de como posso contornar este problema ?

Obrigado.

Campos tipo EDITOR html, se não me engano não é INPUT, sendo assim, não contem o atributo “.value”.
Tente usar .innerHTML = “text”;

Prezado Almeida,

Obrigado pela dica.
Já tentei também este recurso (parent.document.F1.observacoes.innerHTML = ‘Um texto qualquer’), mas também não altera o valor do campo Editor Html.
Porém, também não acusa nenhum erro.
Acho que está faltando informar uma outra propriedade qualquer do campo !

Faz esses passos:

Primeiro: escreva algo no Editor HTML e inspecione-o, de preferência com o “firebug”, se possivel copie o HTML que o firebug te mostra e destaque a marcação html que se encontra o texto que digitou no Editor HTML. Se não quizer postar o html aqui, verifique se a marcação final tem um ID, se tiver use-o.

Segundo, código JS:

parent.document.getElementById('id_encontrado').innerHTML = "Texto";

Fazendo assim, é para funcionar, se postar seu html, com a parte do EditorHTML destacada, ficará mais fácil te ajudar.

Prezado Ameida,

Muito obrigado pela sua ajuda.
Sua dica foi muito útil para resolver o problema.
Utilizando a Inspeção do Objeto pelo Firebug, consegui solucionar o problema.
Segue abaixo a explicação do problema e a solução do mesmo:


Quando se insere um campo Editor Html num formulário, ele é inserido dentro de um IFRAME que assume seu ID com o nome do campo criado, adicionado o sufixo “_ifr” (no meu caso, como o nome do campo era “observacoes”, o iframe onde o mesmo se encontra é “observacoes_ifr”).
Já o nome do campo Editor Html, assume o ID com o valor de “tinymce” (acho que é um padrão do Scriptcase).
Sendo assim, para poder alterar o conteúdo do mesmo, é necessário indicar o IFRAME (ID) onde o mesmo se encontra e o ID do campo Editor Html criado.
No meu caso, para poder alterar valor com rotinas JS dentro de uma Aplicação Blank (também chamada dentro de um IFRAME na aplicação) foi necessário informar o seguinte código:
window.parent.OBSERVACOES_IFR.document.getElementById(‘TINYMCE’).innerHTML = ‘um texto qualquer’;

Segue abaixo o código HTML onde está inserido o campo Editor Html:

-----------------------------------------------------------------------------------------

Mais uma vez quero agradecer-lhe peja sua dica, pois foi ela que deu a luz para a solução do problema.

Att.

Rui G de Oliveira
GEOCAD - Consultoria e Planejamento Ltda