gpt4 book ai didi

JavaScript 代码不在脚本打开的窗口中执行

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:05 24 4
gpt4 key购买 nike

我正在尝试打开一个新窗口,其中包含一些代码和一个按钮,当您单击它时应该会发出警报。我的代码是这样的:

$('#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) 不会触发。尝试替换$(document).ready(fn)

的 IIFE
(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/

关于JavaScript 代码不在脚本打开的窗口中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com