2013-09-05 30 views
1

這裏的長鏡頭的位。我從另一個域加載頁面以在單獨的域上顯示頁面的片段。問題是遠程域頁面包含圖像的絕對路徑功能EG負載:使用jquery ajax時抑制文件未找到錯誤.load()

/assets/images/something.jpg 

我解析這些後負荷已完成糾正的頁面,但是控制檯仍然報告時,破碎的形象的負荷,想必阿賈克斯第一次運行。請問有沒有壓制這些錯誤?

他是我的加載代碼的例子:

$('#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

使用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); 
}); 
+0

這是越來越接近,但URL不喜歡http://www.myDomian.com/myPage.aspx#mainContent。它說沒有找到。它只與http://www.myDomian.com/myPage.aspx一起工作,但是我最後得到了整個頁面。我試過在.done()函數中過濾,但是我無法讓它工作。我怎樣才能過濾掉頁面的#mainContent? –

+0

我不明白。這應該工作,但我得到一個「未捕獲的錯誤:語法錯誤,無法識別的表達式」現在正在控制檯中引發,然後它只是列出整個頁面? –

+0

@ user1001421我修復了我的修改。請檢查出來,然後再試一次。 –

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"); 
}); 
+0

不幸的是,這仍然會在控制檯中產生錯誤。感謝您的迴應。 –