我正在尝试将网页的HTML内容加载到域外,使用jQuery插件http://www.ajax-cross-origin.com/提供的功能可以很好地完成这一任务。但是,当我打印出HTML时,会丢失一些内容,我认为这是因为ajax请求在页面完全加载之前就得到了HTML。当我说“片段丢失”时,我的意思是有些应该有innerHTML的标签实际上没有。这是我的密码:
$.ajax({
crossOrigin: true,
url: "http://siriusxm.com/bpm",
success: function(data) {
console.log(data);
},
timeout: 5000
});crossOrigin属性来自我提到的插件。有和没有超时的情况下,我得到了相同的行为(而且奇怪的是,似乎超时并没有做任何事情--当我检查控制台时,它几乎立即记录data )。
在获得内容之前,是否有一种等待页面完全加载的方法?不管它有什么价值,这都是我正在开发的chrome扩展的一部分,所以如果还有其他代码方面的问题,您可能需要问一问。
谢谢!
发布于 2014-08-12 03:54:33
因此,根据您的评论,您要寻找的信息只是现在的演奏艺术家和歌曲,你将无法通过加载仅仅是主页的来源。
要找到您要查找的数据,只需打开您的Chrome DevTools,转到网络选项卡,然后刷新查看页面上的所有请求。
看起来这是您想要的请求,您只需要每分钟更新时间戳:http://www.siriusxm.com/metadata/pdt/en-us/json/channels/thebeat/timestamp/08-12-03:48:00
只要解析那个json就能得到你想要的东西。当然,他们总是可以更改文件的位置或格式,但现在情况就是这样。
发布于 2014-08-12 03:17:53
如果控制台日志显示了您要查找的所有数据,那么ajax调用应该是可以的。
成功回调中的任何代码都将在ajax调用之后运行,所以只需在成功回调函数中使用JQuery将数据插入到html中即可。我现在看到的只有console.log(数据),除非您已经删除了一些代码。
超时只会让ajax调用在“超时”之前完成一定的时间,换句话说,它告诉ajax调用在设定的时间之后停止等待。
https://stackoverflow.com/questions/25255466
复制相似问题