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

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(”",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);
}

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

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

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

1 curtida

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