Ir para conteúdo
Fórum Script Brasil
  • 0

Javascript para imprimir tabelas (adaptação para Firefox)


aleanjos

Pergunta

A função printTable recebe o ID de uma tabela qualquer, o número de colunas que se quer imprimir e o id do iframe onde ela será jogada para impressão.

Exemplo de uso:

No seu código html você cria um iframe oculto: <iframe id="f1" src="about:blank" height="0%"></iframe>

você cria também uma tabela com um id qualquer: por exemplo, tbl3.

E um botão para imprimir o número de colunas que você deseja (nesse caso, as duas primeiras colunas da tabela): <input type="button" value="Imprimir" onclick="java script:printTable('tbl3', 2, 'f1');">

Esse código já me quebrou muitos galhos pois funciona perfeitamente com Internet Explorer mas agora estou precisando adapta-lo para funcionar no Firefox.

Se puderem ajudar!!!

A função é a seguinte:

&lt;script LANGUAGE="JavaScript" TYPE="text/javascript">
function printTable(tblId, columnsPerPrint, iframeId)
     {
          var win = document.getElementById(iframeId).contentWindow;
          var doc = win.document;
          doc.body.innerHTML = document.getElementById(tblId).outerHTML;
          var tbl = doc.getElementById(tblId);
          if(tbl.rows.length > 0)
          {
               printBlocks = Math.ceil(tbl.rows[0].cells.length / columnsPerPrint);
          }
          // Do each block
          for(var i = 0; i < printBlocks; i++)
          {
               // Do every row
               for(var j = 0; j < tbl.rows.length; j++)
               {
                    // Do every column
                    for(var k = 0; k < tbl.rows[j].cells.length; k++)
                    {
                         if(k >= i * columnsPerPrint && k < ((i + 1) * columnsPerPrint)) // Show desired block
                         {
                              tbl.rows[j].cells[k].style.display = "inline";
                         }
                         else // Hide the rest
                         {
                              tbl.rows[j].cells[k].style.display = "none";
                         }
                    }
               }
               win.focus();  // <------- Added
               win.print();
          }
     }
</SCRIPT>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...