Document.write丢失编码(Chrome)

时间:2014-12-09 16:45:01

标签: jquery html ajax google-chrome

我使用ajax获取了一个html页面,然后打开一个新窗口并将html数据写入这个新窗口。

它在IE 8上工作正常......但是,Chrome正在破坏编码......

我的代码:

 $('#bo').submit(function( event ) {

             $.ajax({
                url : "./home.html",
                cache : false,
                type: 'POST',
                dataType : "html",
            }).done(function(data) {
                 var doc = window.open("", "_blank");
                 doc.document.write(data);
                 doc.document.close();
                });

             event.preventDefault();
            return false;
        });

数据字符串包含此html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE">
</head>

<body>
    <div id="ui-master">
        <div id="ui-header">
         </div>
   </div>
</body>
</html>

有人能给我指点吗?我有点困惑为什么它适用于IE但不适用于Chrome .. 当dom准备就绪时,我会加载一些jquery功能,比如jquery对话框,jquery growl消息和挖出的东西来填充页面,不确定它是否相关。

奇怪的事实是,如果我改变代码做一些像替换我的窗口html而不是打开一个新的弹出窗口..编码将正常工作=( 感谢

1 个答案:

答案 0 :(得分:0)

虽然我不建议使用document.write,但我不确定这会解决您的问题,您可以尝试在$ .ajax函数上强制执行内容编码,如下所示:

$.ajax({
                url : "./home.html",
                cache : false,
                contentType: "text/html;charset=UTF-8"
                type: 'POST',
                dataType : "html",
            });