RSS 提要中以“//”开头的 URL 未加载到 WebBrowser 控件中

URLs in RSS feeds beginning with "//" not loading in WebBrowser control

我正在开发一个基于 WindowsForm 的 RSS 聚合器,作为一个业余爱好项目。在网络浏览器控件中显示包含 html 的 RSS 提要的描述时,我 运行 遇到了问题。

一个给我带来问题的描述示例:

"<img border=\"0\" src=\"//images10.newegg.com/NeweggImage/ProductImageCompressAll125/14-487-346-Z01.jpg\" width=\"125\" height=\"94\" title=\"\" alt=\"\">

问题是img src。如果我在它前面添加 http: ,它会很好地加载图像。否则,我得到一个 x 盒子,不幸的是不是那种你可以玩游戏的盒子。

解决方法是解析每个描述并在必要的地方添加 http: 字符串,但这似乎有很多不必要的编码,而且每个提要都不一样。

有没有更好的方法来显示使用 html 格式化的 RSS Feed 数据,或者有没有办法解决上述与网络浏览器控件有关的问题?

How to show the RSS Feed data that's formatted with HTML?

不知道有没有办法


Is there a way to fix the issue described above with the webbrowser control?

您可以使用 jquery:

轻松解析所有在 http: 前面的 img 的 src 属性
$(function() {
    $('img').attr('src', function(index, src) {
       return 'http:' + this.getAttribute('src');
    });
});

由于问题中的URL没有前缀协议,所以会被认为是相对的URL,但显然不会有本地资源显示。 More on the subject

您可以通过使用 Determine if Absolute or Relative URL 中描述的解决方案并尝试将 http: 粘贴到源 src 以防失败并重试来缓解此问题。