我有2个网站。站点A的主页包含一个新闻部分,我使用jQuery的.load函数将此内容加载到站点B中页面的div中,使用以下代码:
$('.siteBnews').load('http://www.sitea.co.uk .news');
一切正常。问题是,在内容被拉入后,请求源页面上的每个图像,其中没有一个在.news部分。浏览器控制台上有404个错误,因为请求的URL格式为http://siteb.sitea.co.uk/image.jpg。
我看不出它为什么试图抓住所有这些图片的原因,虽然这并没有影响到这样的页面,但我不会发生404错误的加载。有人可以帮忙吗?感谢。
答案 0 :(得分:0)
我认为用.load
无法做到这一点,因为在成功回调中它将responseText添加到节点:
self.html( selector ?
// If a selector was specified, locate the right elements in a dummy div
// Exclude scripts to avoid IE 'Permission Denied' errors
jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
// Otherwise use the full result
responseText );
在内存中创建DOM元素。例如,如果您清除网络选项卡并在控制台中执行此操作:
$('<img src="https://www.google.co.uk/images/srpr/logo11w.png"/>')
您将在网络选项卡中看到正在加载的图像,因为即使将图像插入DOM,浏览器也会加载图像(这就是图像预加载器的工作原理)。您可能必须使用$.ajax
或$.get
(这是负载正在使用的负载)并手动解析返回的HTML字符串,并且只将您想要的元素包装到jQuery对象中。解析html可能很痛苦,这就是为什么jQuery通过DOM元素来实现这一点。
例如$.get({ url: 'http://www.sitea.co.uk', dataType: 'html'}).done(..parse data string..)