javascript函数仅在ie中未定义

时间:2012-04-19 12:59:55

标签: javascript html internet-explorer

我有一个包含3 .js文件的site.html页面,脚本运行,准备环境并从.xml文件中提取另一个m.html文件,并使用以下方法在屏幕上显示此生成的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行,char 1。

如果我按下第一个链接,我会收到文字&#34; undefined&#34;在警报框中。

PL_open()js函数在file1.js中定义,并根据测试定义,直到将m.html加载到屏幕。

exect相同的代码在chrome和safary中完美运行。

有人能指出或指导我解决问题吗?我会感激任何帮助!我的大脑已经融化了:) 非常感谢普罗旺斯!

修改

感谢您的评论!!在发布问题时我错误地删除了引用,因此问题不是&#34;缺少单引号&#34;。

我做了一个测试,并在m.html中包含了file1.js。在这种情况下,函数运行,但正如预期的那样,它进入无限循环。所以我认为file.js和uag.js都可以。如有必要,我可以发布它们。关于使用ajax ......你能解释一下吗?我想尝试一下。

1 个答案:

答案 0 :(得分:2)

所以我使用ajax来更改文档的主体(而不是document.open),现在它正在工作:) 谢谢d4rkpr1nc3的建议! 我仍然不确定为什么ie不能识别这个功能,但是这个解决方案很好。