在没有加载任何相关图像/脚本等的情况下,为AJAX请求的页面获取可用DOM的最佳方法是什么?
<子>的背景故事: 我想在后台加载一个页面,然后对它进行一种数据挖掘(这是一个浏览器扩展,所以我无法自己控制页面)。我不想花时间在后台页面上加载图片和运行脚本,因为它只是我需要的页面内容。
答案 0 :(得分:0)
src
和href
属性的所有代码,或者只是使用data:null
更改这些属性的值。如果数据还包含内联样式,则应删除包含对外部资源的引用的所有语句(例如背景和边框图像,.htc
组件,xul绑定,.ico游标)第2步可以通过javascript中的正则表达式实现。 e.g。
/* here we are in the ajax "success" callback */
...
data = data.replace(/(src|href|style)=['"]([^'"]+?)['"]/gi,
function(match, attribute) {
return (attribute.toLowerCase() === 'style')
? attribute + '=""' /* remove all inline style */
: attribute + '="data:null"'; /* href and src set to data:null */
})
/* append filtered data */
$(data).appendTo($('body_or_other_element'))
答案 1 :(得分:0)
如果可能的话,使用jQuery,如上所述。它可以根据需要轻松选择页面DOM的部分。
以下是一些例子:
你可以像这样抓取标签href属性:$(“a”,$(ajax_response))。attr(“href”);
标题内容:$(“title”,$(ajax_response))。html();
您可能必须测试选择器以查看哪种工作效果最佳,但是,我认为这将是一种简单的方法。