1

这里有点长镜头。我正在从另一个域加载页面以在单独的域上显示页面的片段。问题是远程域页面包含大量具有绝对路径 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");
});

谢谢。

4

2 回答 2

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);
});
于 2013-09-05T11:47:26.660 回答
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");
});
于 2013-09-05T11:48:37.577 回答