1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Javascript chamada por outro frame

Olá,

Na minha página faço uma consulta sql e depois pego a tabela e exporto para CVS via javascript.

Código JavaScript (que está no index)

function Exportar(){
    var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>";
    var textRange; var j=0;
    tab = document.getElementById("Tabela"); // id of table

    for(j = 0 ; j < tab.rows.length ; j++) 
    {     
        tab_text=tab_text+tab.rows[j].innerHTML+"</tr>";
        //tab_text=tab_text+"</tr>";
    }

    tab_text=tab_text+"</table>";
    tab_text= tab_text.replace(/<A[^>]*>|<\/A>/g, "");//remove if u want links in your table
    tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table
    tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE"); 

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // If Internet Explorer
    {    
    txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus(); 
        sa=txtArea1.document.execCommand("SaveAs",true,"Export.xls");    
    }  
    else                 
        //other browser not tested on IE 11
        sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));  

    return (sa);
}

Porém tenho um frame onde o botão de exportar fica localizado.

tela1.jsp (frame onde fica o botão)

<input type="button" name="btnExportar" value="Exportar CSV" onClick="window.opener.Exportar();"

Para conseguir chamar a função javascript que fica no index.jsp tive que utilizar onClick="window.opener.Exportar();".

Essa chamada funciona perfeitamente no Chrome, porém estou com problemas no Internet Explorer.

Alguém pode me ajudar? Será que existe uma chamada alternativa para o IE?

Obrigado

  • Porque você não cria um arquivo de javascript separado do seu Jsp? Se fizer isso é só importar no seu Jsp e usar o método Exportar.

    fabio rene Mussi   10 de fev de 2015
  • Fabio, fiz isso, porém continua com o mesmo problema. No chrome funciona, porém no IE 9 não. O problema é que pego o conteúdo de uma tabela do frame1 e no frame2 não consigo acessar... ele me retorna como null. Como faço para pegar de outro frame o conteúdo?

    Douglas Gripp Emerick   13 de fev de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags javascript jsp ou faça a sua própria pergunta.