我必须加载HTML页面的主体,没有任何样式属性,没有链接图像和所有不是“纯文本”的内容。我想在PHP中做到并尝试非常解决方案,但我还没有解决。我用我的脚本调用ajax来加载html页面,然后使用正则表达式我取出了我想要清除它的主体。你能帮助我吗?这是ajax调用:
$.ajax({
type: "GET"
url: "core/proxy.php?url="+cerca,
success: function(data){
var body = data.replace(/^[\S\s]*<body[^>]*?>/i, "")
.replace(/<\/body[\S\s]*$/i, "");
$("div#risultato").html(body);
},
error: function(){
alert("failed");
}
});
});
答案 0 :(得分:2)
您可以使用jQuery来获取body
。
因此,在success
函数中,您将获取data
,将其转换为jQuery对象并在div中插入文本。
$('div#risultato').html($(data).find('body').text());
答案 1 :(得分:1)
插入style
后,您可以按标记清除body
属性:
function clearStyles(element) {
element.setAttribute('style', '');
for (var i = 0; i < element.children.length; i++) {
clearStyles(element.children[i]);
}
}
clearStyles(document.body);
<强> http://jsfiddle.net/n9ocxa0g/ 强>
或直接使用jQuery:
jQuery('body *').attr('style', '');
答案 2 :(得分:0)
Jose Antonio Riaza Valverde我纠正但没有任何改变:
$.ajax({
//definisco il tipo della chiamata
type: "GET",
//url della risorsa da contattare
url: "core/proxy.php?url="+cerca,
//azione in caso di successo
success: function(data)
{
var body = data.replace(/^[\S\s]*<body[^>]*?>/i, "")
.replace(/<\/body[\S\s]*$/i, "");
$("div#risultato").html(body);
clearStyles(document.getElementById('risultato'));
},
//azione in caso di errore
error: function()
{
alert("Chiamata fallita");
}
});
});
和功能:
function clearStyles(element) {
element.setAttribute('style', ' ');
element.setAttribute('img', ' ');
element.setAttribute('a', ' ');
for (var i = 0; i < element.children.length; i++) {
clearStyles(element.children[i]);
}
}