2012-03-02 41 views
0

我有网页的iframe重装IFRAME“1”,这显示了一个单独的页面“2”我的网站内。与jQuery没有表现出改变或无法加载CSS

1包含运行在提交的AJAX功能的形式。这调用了一个PHP文件,它根据表单中输入的内容编辑了页面的特定部分。

在AJAX功能的成功回调,我重装了iframe第1页上,像这样:

 $.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中 - 它在我的家用PC和我的测试PC上运行得非常好。但没有在大学电脑上工作!

如果我访问页面2没有iframe,已经做出了改变,它工作正常!

我试着加入:

<meta http-Equiv="Cache-Control" Content="no-cache"> 
<meta http-Equiv="Pragma" Content="no-cache"> 
<meta http-Equiv="Expires" Content="0"> 

,但似乎并不有所作为。

+1

很多在这个Ajax调用异常活动......刚创建的项目中删除一个项目,然后将其隐藏,显示()和成功不取决于任何数据 – charlietfl 2012-03-02 01:30:48

+0

你是绝对正确的。删除所有的垃圾已经修复它在Firefox和IE。现在我只需要对淡入淡出动画进行不同的编码。 – tctc91 2012-03-02 01:49:39

+0

我的猜测是你甚至不需要做一个Ajax调用 – charlietfl 2012-03-02 01:54:42

回答

0

Cache?尝试使用头函数设置no cache http头。您还可以使用jquery将随机数追加到url的后面,以便代理不会缓存它们。

从我的手机接听上午,所以它不容易提供的例子。抱歉。

+0

我试着添加一些元信息来禁用缓存(如更新的操作中所见),但没有帮助。 你的意思是将随机数添加到iframe网址吗? – tctc91 2012-03-02 01:23:27

+0

是的。使用math.random函数。也为元无限,也尝试使用PHP头函数来设置这些。我相信该函数的文档中有如何设置它们的例子。 – iWantSimpleLife 2012-03-05 01:05:43

0

这个问题是由引起的 “$( '#previewFrame')隐藏();”。在成功功能里面。不,这是任何人的任何帮助,但想到我会发布我是如何解决这个反正:)