簡體   English   中英

JavaScript代碼不會在腳本打開的窗口中執行

[英]JavaScript code does not execute in a window opened by a script

我正在嘗試打開一個新窗口,其中包含一些代碼和一個按鈕,當您單擊它時它應該發出警報。 我的代碼是這樣的:

 $('#PREVIEW').click(function() { n = window.open("preview.html", "_blank"); var result = DSLExGenerator.parse($('#original').val()); var res = result.replace(/>,</g, "><"); n.document.write(res + '<br/><button id=\\"results\\">Resultados</button><script type=\\"text/JavaScript\\" src=\\"https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\\"></script><script type=\\"text/JavaScript\\">$(document).ready(function() { $(\\"#results\\").click(function() { var aux = 0; var nPreg = 0; $(\\'input[value=\\"1\\"]\\').each(function() { nPreg++; }); $(\\'input:checked\\').each(function() { if($(this).attr(\\"ver\\") == \\"V\\"){ aux++; } }); alert(\\"Ha acertado \\" + aux.toString() + \\" de \\" + nPreg + \\" preguntas.\\"); });});</script>'); }); 

 <html><head></head><body><h1>Titulo: Titulo Fecha: 01,01,2015 Profesor: Profesor Asignatura: Asignatura</h1><p class="question">1. Pregunta 1</p><ul class="answers"><input type="radio" name="q0" value="1" id="q01" ver="F"><label for="q01">Respuesta 1 1</label><br><input type="radio" name="q0" value="2" id="q02" ver="V"><label for="q02">Respuesta 1 2</label><br></ul><p class="question">2. Pregunta 2</p><ul class="answers"><input type="radio" name="q1" value="1" id="q11" ver="V"><label for="q11">Respuesta 1 2</label><br><input type="radio" name="q1" value="2" id="q12" ver="V"><label for="q12">Respuesta 2 2</label><br></ul><p class="question">3. Pregunta 3</p><ul class="answers"><input type="radio" name="q2" value="1" id="q21" ver="V"><label for="q21">Respuesta 1 3</label><br><input type="radio" name="q2" value="2" id="q22" ver="V"><label for="q22">Respuesta 3 2</label><br><input type="radio" name="q2" value="3" id="q23" ver="F"><label for="q23">Respuesta 3 3</label><br></ul><p class="question">4. Pregunta 4</p><ul class="answers"><input type="radio" name="q3" value="1" id="q31" ver="V"><label for="q31">Respuesta 1 4</label><br><input type="radio" name="q3" value="2" id="q32" ver="V"><label for="q32">Respuesta 4 2</label><br></ul><br><button id="results">Resultados</button><script type="text/JavaScript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script type="text/JavaScript">$(document).ready(function() { $("#results").click(function() { var aux = 0; var nPreg = 0; $('input[value="1"]').each(function() { nPreg++; }); $('input:checked').each(function() { if($(this).attr("ver") == "V"){ aux++; } }); alert("Ha acertado " + aux.toString() + " de " + nPreg + " preguntas."); });});</script></body></html> 

問題是如果我手動復制HTML代碼並將其保存到文件中它可以工作,但它不能在生成的窗口上工作。

嘗試在關閉script標記之前添加\\之前/ 此外, document已加載, $(document).ready(fn)不會觸發。 嘗試用IIFE代替$(document).ready(fn)

(function() {
  $("#results").click(/* do stuff */)
}());

    n = window.open("", "_blank");
   // var result = DSLExGenerator.parse($('#original').val());
   // var res = result.replace(/>,</g, "><");
    n.document.write('<br/><button id=\"results\">Resultados</button><script type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\"><\/script><script type=\"text/javascript\">(function() {        $(\"#results\").click(function() {alert(\"preview\");});}());<\/script>');

jsfiddle http://jsfiddle.net/ac7ax95L/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM