【问题标题】:jQuery .load() issue in IE, SinatraIE、Sinatra 中的 jQuery .load() 问题
【发布时间】:2011-09-17 03:35:47
【问题描述】:

我正在构建一个站点,几乎完成了,但是在 IE8 上进行测试时遇到了问题。看看:

http://ryanrogalski.com/creepyhtml

当您通过导航栏转到网站的另一部分时,中间的内容会淡出然后不会被替换。我假设这是 .load() 的问题,因为它仅在 IE 上,在 Chrome、FF 和 Safari 上运行良好。

我还在http://creepy.heroku.com 建立并托管了该站点,它运行良好,但正在使用 Sinatra。客户希望网站是基本的 html,所以我被困在修复一些已经可以正常工作的东西,因为他们不想在 heroku 上托管。

这是我的 nav.js 脚本:

$(document).ready(function() {
    var link = $('#nav a');
    link.click(function() {
        var href = $(this).attr('href');
        link.removeClass('color');
        $(this).addClass('color');
        $('#container').fadeOut(1000, function() {
            $(this).empty().load(href + ' #container',function() {
                $(this).fadeIn(1000);
            });
        });
        return false;
    });
});

$(document).ready(function() {
    var link = $('#head a');
    link.click(function() {
        var href = $(this).attr('href');
        $('#container').fadeOut(1000, function() {
            $(this).empty().load(href + ' #container',function() {
                $(this).fadeIn(1000);
            });
        });
        return false;
    });
});

有人对我如何编辑它以允许内容重新加载有任何想法吗?

提前感谢您的帮助。

【问题讨论】:

  • 添加一个错误处理程序以查看发生了什么问题,但是,我几乎可以肯定它将是“parseerror”,表明返回的 html 的结构存在问题。 $.ajaxSetup({error:function(x,y,z){alert(y)});
  • OMG 终于我终于通过将 doctype 和 html、head 和 body 标签添加到正在导入的 html 文档中来解决这个问题。我恨你,我恨你。

标签: jquery ajax heroku sinatra


【解决方案1】:

IE 似乎不喜欢对象标签或空格(回车/换行)。你能删除它们吗? =)

$.get("creepy_music.html?" + new Date().getTime(), function(data) {
    $('#container').html(data.replace(/[\r\n]*\\|object*/g, ''));
});

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2011-09-19
    • 2013-01-25
    • 2012-07-28
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多