我正在使用另一个开发人员代码......但我认为那里没有问题...该页面应提交一个搜索表单,该表单由getResults()序列化拦截,然后将结果注入所需的空DIV。
所以问题是Jquery的load()无法在IE中显示结果,除非我疯狂刷新页面。这让我相信像许多我在这里有缓存问题。然而,许多小时的搜索和修改load()导致了同样的问题。
将load()更改为get()。 添加时间戳。 使用ajax请求进行重建(在本地有一些快乐,但是在放到现场时这也不起作用) 将ajax缓存设置为false。 删除e.preventDefault()这有效,但强制页面刷新(不幸的是不可接受) 检查HTML有效性并确保(text / javascript)贯穿始终。 为了兼容性,我已经包含了jquery-migrate-1.2.1.js。 < IE9 encodeURIComponent方法()
我的$数据充满了\ r \ n \ t(我猜是换行)我在Chrome或FF调试时没有看到这个,有人知道这是怎么回事吗?
function getResults(){
$(document).ready(function() {
$('#vrSearchForm').submit(function(e) {
var ok = false;
var target = document.getElementById('spin');
var spin = new Spinner({color:'rgb(255,156,33)',radius:50,lines:8,width:10,shadow:true}).spin(target);
var pos = $('.returned-properties').position();
var form = $(this);
serializedData = form.serialize();
$('.returned-properties').empty();
$('#results').remove();
$('#more-results').css("display","inline");
$('.returned-properties').load('index.php #results',serializedData, function(data) {
$('body').animate({
scrollTop: pos.top - 100
},800);
spin.stop();
var working = data;
if (status != "error") {
if (($.browser.msie))
response.replace(/\r\n/g, "");
}
if (typeof history.pushState != 'undefined') {
ok = true;
history.pushState(serializedData,"", "index.php?" + serializedData);
}else{
location.hash = "index.php?" + serializedData;
}
});
e.preventDefault();
return false;
});
});
}
答案 0 :(得分:0)
长话短说...一个额外的div标签。没有被W3验证工具发现,真正的关闭div标签只是在屏幕外,所以根本没有立即明显,除了这一切在Chrome和FireFox中都有效。 IE没有错误,根本没有任何反馈,只有零输出。