Fou*_*ays 4 jquery internet-explorer load
可怕的IE再次罢工.:(
在过去的几天里,我一直在使用模态对话框为Tiny MCE开发图像选择和上传工具.在脚本期间,jQuery的load()函数被多次用于加载外部HTML并将其插入指定的div元素中.
即使在IE中,一切都很顺利,直到大约半小时前,当我启动IE来检查更改并且所有load()调用现在什么都不做.如果内容应出现在文档中(已检查过开发人员工具),则会有一个空div.也没有报告错误.但是,我可以使用html()手动更新元素.
直到几个小时前,它在IE中运行良好......现在它什么也没做.我已经尝试使用完整的地址(没有这样的运气),已经清除浏览器缓存并尝试从load()调用的php文件中发送无缓存标题.它可能是某种缓存问题吗?
以下是许多类似调用中第一个的示例:
//Create the dialog.
if ($('#imgPropDialog').length == 0) {
$('body').append('<div id="imgPropDialog" class="jqmWindow"></div>');
$('#imgPropDialog').load('system/admin/ajax/image_properties.php');
}
Run Code Online (Sandbox Code Playgroud)
imgPropDialog div正确添加并显示在IE中的文档中.但是image_properties.php的内容永远不会出现.在Chrome中运行良好(可能是IE之外的所有其他浏览器).
在我开始删除所有更改之前的任何想法?谢谢
您可以通过在URL中添加随机查询字符串来快速测试缓存是否是您的问题,如下所示:
$('#imgPropDialog').load('system/admin/ajax/image_properties.php?_=1234');
Run Code Online (Sandbox Code Playgroud)
如果这使它工作,那么缓存是你的问题.IE缓存了AJAX GET请求(这是.load()使用的).如果要基于每个请求停止缓存,则需要使用$ .ajax(),该cache选项设置为false.或者,您可以生成自己的随机查询字符串(cache: false无论如何都是jQuery 选项).
或者,如果要完全禁用AJAX缓存,请执行以下操作:
$.ajaxSetup ({
// Disable caching of AJAX responses */
cache: false
});
Run Code Online (Sandbox Code Playgroud)
看到这个问题:停止缓存jQuery .load响应
编辑
附加建议:尝试这样的事情,看看会发生什么
$.ajax({url: 'system/admin/ajax/image_properties.php', cache: false, success: function(data, textStatus) {
alert($(data).html());
}});
Run Code Online (Sandbox Code Playgroud)
希望该警报会告诉您哪些(如果有的话)信息会回来.如果它没有弹出,请求以某种方式失败,或者IE以某种方式忽略无缓存.
| 归档时间: |
|
| 查看次数: |
7040 次 |
| 最近记录: |