Javascript 如果跨域Ajax请求满足目标div的内容,并在加载文档的几秒钟后生成该怎么办
我需要检索外部网站页面上生成的div的内容 我已经找了好一阵子了,一点运气都没有 我已经能够从该页面检索所有静态内容(跨域)。 但该div的内容只有在单击页面上的按钮后才会生成 url类似于: 因此,当选择类型和邮政编码时,url将变为 该div的内容将在整个页面内容加载后2-3秒左右显示 这是密码Javascript 如果跨域Ajax请求满足目标div的内容,并在加载文档的几秒钟后生成该怎么办,javascript,jquery,crossdomain-request.js,Javascript,Jquery,Crossdomain Request.js,我需要检索外部网站页面上生成的div的内容 我已经找了好一阵子了,一点运气都没有 我已经能够从该页面检索所有静态内容(跨域)。 但该div的内容只有在单击页面上的按钮后才会生成 url类似于: 因此,当选择类型和邮政编码时,url将变为 该div的内容将在整个页面内容加载后2-3秒左右显示 这是密码 $.ajax({ url: link, type: 'GET', success:
$.ajax({
url: link,
type: 'GET',
success: function (res) {
var headline = $(res.responseText).find('#divID').text();
$('#container').html(headline);
}
});
更新:
delay()方法不能满足我的要求,因为我仍然需要毫不延迟地执行ajax调用。
更重要的是,在调用执行后,我需要在加载生成的/动态的/延迟的内容后(而不是加载页面内容的时间)可以触发回调函数。这里有两个不同的时间。
我只是不知道这是否可能
更新2:
完整的方法不是我需要的。它在请求完成时触发,但此时尚未生成生成的div内容。所以这仍然不是解决办法。这是我正在谈论的演示图片。您可以看到div#输出的内容仍然是空的
更新3:
下面是在#output div中插入内容的代码
var markerImage = "http://www.racv.com.au/wps/wcm/connect/ebffbd00473d0422974bbfc0de4a49c9/marker.png?MOD=AJPERES&CACHEID=ebffbd00473d0422974bbfc0de4a49c9";
var searchString="";
var fuelType=2;
var resultPage = document.location;
resultPage = String(resultPage).split("?"); // Get URL without the query string
resultPage = resultPage[0];
function searchFuel(){
if (document.getElementById('fuelType3').checked) {
fuelType = 3;
} else if (document.getElementById('fuelType2').checked) {
fuelType = 4;
} else if (document.getElementById('fuelType4').checked) {
fuelType = 6;
} else if (document.getElementById('fuelType1').checked) {
fuelType = 2;
} else if (document.getElementById('fuelType5').checked) {
fuelType = 5;
}
//window.open("/wps/wcm/connect/racv/internet/primary/my+car/advice+_+information/fuel/petrol+prices/search+for+petrol+prices+around+melbourne?fuelType="+fuelType+searchString, '_self')
window.open(resultPage + "?fuelType=" + fuelType + searchString, "_self");
}
此功能通过单击按钮触发,下面是代码
<input type="image" style="margin-top: 40px; cursor: pointer;" src="/wps/wcm/connect/993c7080474f0a60a0bff5aa2893940e/fpButton.gif?MOD=AJPERES&CACHEID=993c7080474f0a60a0bff5aa2893940e" alt="search" id="search" border="0" class="submit" onclick="searchFuel();" onmouseover="javascript: this.style.cursor='pointer'">
我认为有两种可能性:
#output
div将作为ajax调用的结果进行修改
打开Firebug控制台,浏览到您试图抓取的页面,选择您的地理区域,并查看在更新页面时控制台中显示的内容
发送一些ajax查询。仔细查看它们,找出哪一个包含您需要的信息。在显示以下内容之前使用延迟
$('#container').delay(800).html(headline);
使用jquery
delay
@Deadlock Hi-DL,延迟函数不符合我的要求。请看我文章的更新部分。Thxi如果这是如此简单的话,谷歌早就这么做了now@JanDvorak嗨,我想我并没有说这很容易。那个片段是如何改变#输出的?我唯一能看到的是一个窗口。打开call.Hi Deadlock,代码:$('#container').delay(800).html(headline);在成功回调中,因此无论您延迟多长时间显示检索到的内容,它都不会获取我想要的内容。重要的是只有在加载生成的内容后才触发回调(成功)。@Franva对于此死锁,您可以使用complete
而不是success
,谢谢您的回复。完整的对我来说不起作用。请参阅更新2,其中说明了原因。嗨,LeGEC,这是可能性1。我使用了ajax调用(正如您在我的代码中看到的)来实现这一点。真正的问题在我更新的部分。请看一看。您是否识别了修改#output
的js代码?您好,是的,我已经识别了js代码。请查看我的更新3部分。非常感谢!!