相关疑难解决方法(0)

在window.open打开的窗口中使用document.write编写的脚本元素不会在Windows 7的IE8中执行

我遇到了一个似乎只出现在Windows 7上的问题.它似乎在不同版本的Windows上的IE8中运行良好.基本上,我正在用window.open()创建一个新窗口,然后使用document.write()来编写包含脚本包含的新窗口的内容.在IE中,这些脚本没有正确执行.大多数时候他们根本没有执行,但偶尔会有其中一个人执行.这只是一个清除缓存 - 一旦javascript文件在缓存中,它工作正常.

简化测试案例:

的test.html:

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
   <script type="text/javascript">
      var w = window.open();
      var windowHTML = "\
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>\n\
<html>\n\
<head>\n\
   <script type='text/javascript' src='test.js'></scr"+"ipt>\n\
   <script type='text/javascript' src='test2.js'></scr"+"ipt>\n\
</head>\n\
<body>\n\
</body>\n\
</html>";
      w.document.write(windowHTML);
      w.document.close();
   </script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

test.js:

alert("test");
Run Code Online (Sandbox Code Playgroud)

test2.js:

alert("test2");
Run Code Online (Sandbox Code Playgroud)

当我去test.html时,我希望看到一个新窗口弹出"test"然后"test2"的警报.我在大多数浏览器中都这样做,包括IE6.但是,当我在Windows 7上的IE8中尝试此操作时,它会打开空白页面,但不会出现警报(或偶尔会出现警报).

这是某种时间问题吗?有没有人见过这个?有什么方法可以解决它吗?


编辑: 这是Rob Cooney想要看到的我试过的代码.同样,它适用于其他浏览器,但不适用于Windows 7上的IE8.

TEST.HTM:

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html>
<head>
   <script type="text/javascript">
      var w = …
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer windows-7

7
推荐指数
1
解决办法
8833
查看次数

标签 统计

internet-explorer ×1

javascript ×1

windows-7 ×1