jQuery .load()在IE10中不起作用

时间:2013-04-27 03:36:07

标签: jquery internet-explorer encoding load

我遇到了IE 10和jQuery .load()的问题。我有一个PHP页面,我加载网站后加载:

$(document).ready( function() { 
    $('#words').html('<div id="loading"><div id="loading-text">Analyzing frequency data...</div><div id="loading-image"><img src="loading.gif"></div></div>');
    $('#words').load('translate.php?character=<?php echo $character1;?>');
}); 

它在Chrome中运行良好,但在IE中,“加载”文本显示约1秒钟后消失,并且translate.php文件永远不会加载。

如果我将代码更改为

$(document).ready( function() { 
    $('#words').html('<div id="loading"><div id="loading-text">Analyzing frequency data...</div><div id="loading-image"><img src="loading.gif"></div></div>');
    $('#words').load('index.php');
}); 

它装得很好。但是,如果我将代码更改为:

$(document).ready( function() { 
    $('#words').html('<div id="loading"><div id="loading-text">Analyzing frequency data...</div><div id="loading-image"><img src="loading.gif"></div></div>');
    $('#words').load('translate.php?character=章');
}); 

仍然不起作用。

另外,当我回复translate.php文件中的字符时,它显示为“?”这让我相信有一个字符编码问题。但是:

  • 所有页面都编码为“UTF-8无BOM”
  • 我在<meta charset="UTF-8">代码
  • 中有<head>
  • 未从translate.php加载的中文字符显示正常

可能是jQuery加载只在IE中填充编码吗?

我迷路了!

谢谢,Dan

1 个答案:

答案 0 :(得分:3)

尝试对网址中的字符进行网址编码

$(document).ready( function() { 
    $('#words').html('<div id="loading"><div id="loading-text">Analyzing frequency data...</div><div id="loading-image"><img src="loading.gif"></div></div>');
    $('#words').load('translate.php?character='+encodeURIComponent('<?php echo $character1;?>'));
});