使用jquery ajax .load()时抑制文件未找到错误

时间:2013-09-05 11:43:15

标签: jquery

这里有点远射。我正在从另一个域加载页面以在单独的域上显示页面的片段。问题是远程域页面包含一堆具有绝对路径EG的图像:

/assets/images/something.jpg

我在加载完成后正在解析这些以纠正页面,但是控制台仍会报告大量已损坏的图像,可能是从ajax首次运行时开始。无论如何要抑制这些错误吗?

他是我加载代码的一个例子:

$('#myDiv').load('http://www.myDomian.com/myPage.aspx #mainContent', function(){
   $('#myDiv').html($('#myDiv').html().replace(/\/assets\/images\//g, "http://www.myDomain.com/assets/images");
});

感谢。

2 个答案:

答案 0 :(得分:2)

使用jQuery.ajax()代替.load(),这样您就可以拦截响应中的数据并在注入DOM之前对其进行修改:

$.ajax({
    url: 'http://www.myDomian.com/myPage.aspx'
}).done(function( data ) {
    var
        $myDiv = $('#myDiv'),
        modifiedData = $(data).find('#mainContent')[0].outerHTML;

    modifiedData = modifiedData.replace(/\/assets\/images\//g, 'http://www.mydomain.com/assets/images');

    $myDiv.html(modifiedData);
});

答案 1 :(得分:0)

首先尝试将它们加载到分离的元素中,然后修复链接,然后将元素附加到DOM。

例如:

var newDiv = $('<div></div>');
newDiv.load('http://www.myDomian.com/myPage.aspx #mainContent', function(){
   $('#myDiv').html(newDiv.html().replace(/\/assets\/images\//g, "http://www.myDomain.com/assets/images");
});