gpt4 book ai didi

javascript - <script> 里面的 javascript 代码 document.write()

转载 作者:数据小太阳 更新时间:2023-10-29 03:48:20 25 4
gpt4 key购买 nike

我得到了一部分嵌入 HTML 中的 javascript 代码(在服务器端生成),如下所示:

function winWriteMail2(){
var win = open('','wininfo', 'width=400,height=300,scrollbars=yes,resizable=yes');
win.document.open();
win.document.write('<HTML><HEAD><META http-equiv="Content-type" content="text/html; charset=iso-8859-2"><LINK rel="stylesheet" type="text/css" href="/css/main.css">');
win.document.write('<scr' + 'ipt language="javascript" type="text/javascript" src="/js/JSFILE.js"></scr' + 'ipt>');
win.document.write('</HEAD><BODY BGCOLOR="#f7f3e7">');
<!-- window content goes here -->
win.document.write('</BODY></HTML>');
win.document.close();
}

此代码在单击元素时执行。

对我来说有问题的部分是包含 javascript 文件 - 它在 Firefox 和 Chrome 中工作正常,但 IE(7 和 8,正如我测试的那样)表现得很奇怪。使用包含 JSFILE 的行在那里,点击窗口打开了,但是是空的,CPU 100% 忙,唯一的办法就是杀死 IE。

有人可以帮助解决这个问题吗?也许我应该使用其他方式在其中插入 javascript 文件?

我试过了,而不是 win.document.write() ,DOM 操作方法,将这部分代码放在 win.document.close() 之后:

h = win.document.getElementsByName('head')[0];
js = document.createElement('script');
js.src = '/js/JSFILE.js';
h.appendChild(js);

但随后代码未加载,即使在 Firefox 中也是如此(并且使用 firebug 检查不显示它甚至可以看到它)。


经过一番排查,发现是<script>引起的问题带有 src= 的元素属性定义。如果我添加一个内联脚本,例如:

<script type='text/javascript'>alert('foo')</script>

在我的 document.write() 内,窗口打开,出现警告框,一切正常。

但是使用一个

<script type='text/javascript' src='/js/foo.js'></script>

IE 在打开新窗口时停止,一直使用 100% 的 CPU。

最佳答案

这段代码对我有用:

function winWriteMail2(){
var win = open('','wininfo', 'width=400,height=300,scrollbars=yes,resizable=yes');
win.document.open();
win.document.write('<HTML><HEAD><META http-equiv="Content-type" content="text/html; charset=iso-8859-2"><LINK rel="stylesheet" type="text/css" href="/css/main.css">');
win.document.write('</HEAD><BODY BGCOLOR="#f7f3e7">');
win.document.write('this is the body content');
win.document.write('</BODY></HTML>');
win.document.close();

var h = win.document.getElementsByTagName("head")[0];
var js = win.document.createElement("script");
js.type = "text/javascript";
js.src = "js/scriptfile.js";
h.appendChild(js);
}

这是我需要更改您的代码以使其工作的内容:

//From
var js = document.createElement("script");
//To
var js = win.document.createElement("script");

您需要在要附加的同一文档中创建脚本元素。

关于javascript - &lt;script&gt; 里面的 javascript 代码 document.write(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985385/

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