Php 使用jQuery重新加载IFRAME时未显示更改或加载CSS失败
我在“1”页上有一个iframe,它在我的站点中显示一个单独的“2”页 第1页包含一个表单,在提交时运行AJAX函数。这将调用一个PHP文件,该文件根据表单中输入的内容编辑第2页的特定部分 在AJAX函数的成功回调中,我在第1页重新加载iframe,如下所示:Php 使用jQuery重新加载IFRAME时未显示更改或加载CSS失败,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我在“1”页上有一个iframe,它在我的站点中显示一个单独的“2”页 第1页包含一个表单,在提交时运行AJAX函数。这将调用一个PHP文件,该文件根据表单中输入的内容编辑第2页的特定部分 在AJAX函数的成功回调中,我在第1页重新加载iframe,如下所示: $.ajax({ type: "POST", url: 'file.php', data: "user="+ user +"&
$.ajax({
type: "POST",
url: 'file.php',
data: "user="+ user +"&title="+ title,
success: function()
{
var frameHtml = '<iframe id="previewFrame" src="temp/' + user + '/" width="100%" height="373" scrolling="yes"><p>Your browser does not support iframes.</p></iframe>';
var liveDemoFrame = $('.liveDemoFrame');
var previewFrame = $('#previewFrame');
previewFrame.remove();
liveDemoFrame.append(frameHtml).hide();
$('#previewFrame').hide();
liveDemoFrame.show().append('<div class="customiseThemeSpinnerWrap"><div class="customiseThemeSpinnerIcon"></div></div>');
setTimeout(function() {
$('#loading').remove();
$('.customiseThemeSpinnerWrap').remove();
$('#previewFrame').fadeIn();
}, 1000);
}
});
在Firefox中,一旦iframe被重新加载,CSS就会丢失,页面就完全是HTML了。
在IE中,尚未进行更改。
在Chrome中,它在我的家用电脑和测试电脑上都能正常工作,但在大学电脑上却不能工作!
如果我在没有iframe的情况下访问第2页,那么已经进行了更改,并且工作正常
我尝试添加:
<meta http-Equiv="Cache-Control" Content="no-cache">
<meta http-Equiv="Pragma" Content="no-cache">
<meta http-Equiv="Expires" Content="0">
但这似乎没有什么区别。缓存?尝试使用header函数设置无缓存http头。您还可以使用jquery将一个随机数附加到url的后面,这样代理就不会缓存它们
我是用手机回答的,所以举个例子并不容易。抱歉。问题是由$previewFrame.hide引起的;处于成功功能的内部。并不是说这对任何人都有帮助,但我想我会发布我是如何解决这个问题的:我已经尝试添加一些元信息来禁用缓存,如更新后的op中所示,但没有帮助。你的意思是在iframe URL中添加一个随机数吗?是的。使用math.random函数。同样对于meta infinitely,也可以尝试使用header php函数来设置它们。我相信该函数的文档中有关于如何设置它们的示例。在这个ajax调用中有很多不寻常的活动…删除一个项目,然后隐藏它,显示刚刚创建的项目,成功与否不取决于任何数据您完全正确。删除所有垃圾已经在Firefox和IE中修复了它。现在我只需要以不同的方式重新编写fadeIn动画。我猜你甚至不需要进行ajax调用