IE iframe和unicode文本

时间:2011-06-06 17:50:48

标签: javascript unicode iframe internet-explorer-8 src

我在IE中遇到麻烦问题。我正在尝试动态创建iframe并根据用户选择将其src属性分配给适当的文件。我已经创建了一个简单的html页面,其中包含内联javascript,可以重现问题。

<html>
  <head>
    <script type="text/javascript">
      function createIFrame(){
        var iframe = document.createElement('iframe');  
        document.body.appendChild(iframe);
        iframe.id = "myframe";  
      }

      function loadFile(fileName){
        var frame = document.getElementById("myframe");
        frame.src = fileName;
      }
    </script>
  </head>
  <body>
    <input type="button" value="create iframe" onclick="createIFrame()" />
    <input type="button" value="load ansi" onclick="loadFile('ansi.txt')" />
    <input type="button" value="load unicode" onclick="loadFile('unic.txt')" />
    <hr/>
    <iframe id="workingFrame" src="unic.txt"></iframe>
  </body>
</html>

ansi.txt - 以ANSI编码保存的文本文件,unic.txt是unicode文本文件。

按下创建按钮iframe添加到DOM。如果按下'load ansi'按钮文件内容被加载到iframe中没有任何问题,但'加载unicode'按钮会导致问题 - iframe保持为空。

但是如果最初定义的src属性就像'workingFrame'那样 - 正确加载了unicode文件。这个问题发生在IE 8中,IE 9建议下载文件而不是渲染文件。我需要在iframe中呈现文件内容。

2 个答案:

答案 0 :(得分:0)

我在8和9中尝试了你的例子,它运作得很好。您是否尝试过自己对html页面进行示例,或者仅仅是您的实际代码?

PS - 很抱歉将此作为答案发布,我还没有发表评论

答案 1 :(得分:0)

您的服务器在此响应中发送了什么MIME类型? Content-Type HTTP标头指定了什么CHARSET?

如果您发送text / html而不是text / plain,我打赌这可以正常工作。