document.getElementById( ).value não está funcionando com window.open( )

3 respostas
htmljavascript
B

Olá pessoal, blza?

Quero gerar uma página de impressão limpinha com algumas informações apenas. Para isso estou utilizando o seguinte código (bem resumido) em javascript:

function myFunction() {

var myWindow = window.open(" “, “_self”);

var str1 = “Janela de Impressão”;

var result1 = str1.fontsize(5);

myWindow.document.write(”<strong>",result1, </strong>”);

var str2 = “Dados da Impressão”;

var result2 = str2.fontsize(5);

myWindow.document.write("<strong>

",result2, </strong>”);

var salario_bruto = document.getElementById(“salario”).value;

myWindow.document.write("<strong>
Salário: </strong>"); myWindow.document.write(salario_bruto);

}

A página html está assim:

<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript" src="impressao.js"></script>
</head>
<body>
  <div>Salário: <input id="salario" name="salario" type="text">
  <button type="button" onclick="myFunction()">Imprimir</button> </div>
</body>
</html>

Testei isso offline e funcionou, mas quando subi a página para o site não está dando certo. Quando eu clico em “imprimir” ele não pega o valor do salário. Alguma ideia? Valeu

3 Respostas

D

O arquivo impressao.js está no mesmo diretório?

B

Diego, blza? Acabei de resolver. Era um vacilo de lógica apenas; estava chamando a função window.open() antes de carregar a página. Apenas troquei a ordem e funcionou. Ficou assim:

function myFunction() {

var str1 = Janela de Impressão;

var result1 = str1.fontsize(5);

myWindow.document.write(",result1, “”);

var str2 = Dados da Impressão;

var result2 = str2.fontsize(5);

myWindow.document.write(" “,result2, “”);

var salario_bruto = document.getElementById(salario).value;

myWindow.document.write( Salário: ); myWindow.document.write(salario_bruto);

var myWindow = window.open( , _self);

}

Valeu
D

Valeu, muda pra [RESOLVIDO} então e marca a sua resposta.

Criado 26 de novembro de 2018
Ultima resposta 27 de nov. de 2018
Respostas 3
Participantes 2