【发布时间】:2012-05-04 15:48:47
【问题描述】:
我有一个包含 3 个 .js 文件的 site.html 页面,脚本运行、准备环境并从 .xml 文件中提取另一个 m.html 文件,并使用以下代码:
var dd=document.open("text/html","replace");
dd.write(htmlData);
dd.close();
site.html 如下所示:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript" src="file3.js"></script>
<link rel="stylesheet" type="text/css" href="file4.css">
</head>
<body>
_
</body>
</html>
生成的 m.html 如下所示:
<html>
<head>
<meta name="viewport" content="user-scalable=no">
<link rel="stylesheet" type="text/css" href="file4.css">
<script type="text/javascript" src="uag.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body id="homebody">
<img class="background" src="a.jpg">
<div id="homebuttons">
<table>
<tr>
<td>
<a href="javascript:alert(typeof PL_open)"><img src="b.png"></a>
</td>
<td class="spacer">
</td>
<td>
<a href="javascript:PL_open('activate:a')"><img src="c.png"></a>
</td>
</tr>
<tr class="spacer">
</tr>
<tr>
<td>
<a href="javascript:PL_open('activate:b')"><img src="d.png"></a>
</td>
<td class="spacer">
</td>
<td>
<a href="javascript:PL_open('activate:c')"><img src="e.png"></a>
</td>
</tr>
</table>
</div>
</body>
</html>
正确显示,但是当我按下其中一个按钮(链接)时,我收到错误消息: 预期对象:JScript - 窗口脚本块,第 1 行,字符 1。
如果我点击第一个链接,我会在警告框中看到文本“未定义”。
PL_open() js 函数在 file1.js 中定义,并根据测试定义,直到 m.html 加载到屏幕。
完全相同的代码在 chrome 和 safary 中完美运行。
谁能指出或指导我解决问题?我将不胜感激任何帮助!我的大脑已经融化了:) 非常感谢提前!
编辑:
感谢您的 cmets!我在发布问题时错误地删除了引号,因此问题不是“缺少单引号”。
我做了一个测试,在 m.html 中包含了 file1.js。在这种情况下,函数会运行,但正如预期的那样,它会进入无限循环。所以我认为 file.js 和 uag.js 都可以。如有必要,我无论如何都可以发布它们。以及关于使用 ajax ......你能解释更多吗?我想试试。
【问题讨论】:
-
在生成的 html 中缺少单引号:
<a href="javascript:PL_open('activate:a)"><img src="c.png"></a> -
尝试使用 ajax 代替 document.open
-
能贴出“file1.js”和“uag.js”的代码吗?也许有问题....
-
通常会导致 IE 出现问题的一件事是,如果您在对象文字的末尾添加一个额外的逗号,例如var foo = { thing:'hello', otherthing: 'blah',} 最后一个逗号可能会导致 javascript 在 IE 上静默失败
-
感谢您的回复!!我在发布问题时错误地删除了引号,因此问题不是“缺少单引号”。
标签: javascript html internet-explorer