用jQuery重新加载IFRAME没有显示更改或无法加载CSS


reloading IFRAME with jQuery not showing changes OR failing to load CSS

我在页面'1'上有一个iframe,它显示了我的网站中的一个单独页面'2'。

页面1包含一个在提交时运行AJAX函数的表单。这调用了一个PHP文件,该文件根据表单中输入的内容编辑第2页的特定部分

在AJAX函数的成功回调中,我在第1页上重新加载iframe,如下所示:

        $.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();"引起的。这对任何人都没有任何帮助,但我想我应该发布我是如何解决这个问题的:)