gpt4 book ai didi

javascript - 用 data.replace 删除所有图像?

转载 作者:行者123 更新时间:2023-12-02 19:55:24 24 4
gpt4 key购买 nike

我正在使用脚本从外部网站检索内容,并且返回日期时删除了某些元素,以便它们不会干扰我将数据提取到的页面。但是,当我在打开错误控制台的情况下查看页面时,我在所有图像上都收到 404 错误。无论如何,我是否可以从脚本中删除所有图像,以便我只获取文本(仍在其格式化标签中)?

$(document).ready(function () {
var container = $('#target');

function doAjax(url) {
if (url.match('^http')) {
$.getJSON("http://query.yahooapis.com/v1/public/yql?"
+ "q=select%20*%20from%20html%20where%20url%3D%22"
+ encodeURIComponent(url)
+ "%22&format=xml'&callback=?",
function (data) {
if (data.results[0]) {
var fullResponse = $(filterData(data.results[0])),
justTable = fullResponse.find("table");
container.append(justTable);
} else {
var errormsg = '<p>Error: could not load the page.</p>';
container.html(errormsg);
}
});
} else {
$('#target').load(url);
}
}
function filterData(data) {
data = data.replace(/<?\/body[^>]*>/g, '');
data = data.replace(/[\r|\n]+/g, '');
data = data.replace(/<--[\S\s]*?-->/g, '');
data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g, '');
data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g, '');
data = data.replace(/<script.*\/>/, '');
return data;
}
doAjax('mywebsite');
});

最佳答案

选项 1:

您可以通过将此行添加到 filterData() 来剥离图像。功能:

data = data.replace(/<img[^>]*>/g, '');

这将替换所有以 <img 开头的字符串然后包含除 > 之外的零个或多个字符带有一个空字符串。

选项 2:

您可以使用 jQuery 来删除元素。在 container.append() 之前插入此内容:

justTable.find("img").remove();

这将找到所有 img表格内的元素并删除它们。

替代方案:

某些图像不可用,因为它们的 URL 是相对的。如果您有<img src="logo.png">http://example.com/page.html然后浏览器正在从 example.com/logo.png 加载图像。如果您包含相同的 <img>标记到您的页面http://own.com/my.html然后浏览器将尝试加载 own.com/logo.png .

您可以通过更改 src 来解决此问题图像的属性,以包含您从中检索页面的域。

示例(未完全测试,可能需要修改):

// copy everything for url except the string after last "/" character
// so if url == http://example.com/page.html then path == http://example.com/
var path = url.match("(.+/)[^/]+$")[1];

// modify all local images (value of src attribute not starting with "http://")
justTable.find('img').not('[src^="http://"]').attr('src', function() {
return path + $(this).attr('src');
});

关于javascript - 用 data.replace 删除所有图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com