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

问题描述:

我正在将基于WindowsForm的RSS聚合器作为业余爱好项目工作。我遇到了一个问题,同时显示来自RSS浏览器的描述,该浏览器在webbrowser控件中包含html。以“//”开头的RSS提要中的URL在WebBrowser控件中未加载

导致我的问题的说明的一个例子:

"<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数据,或者有没有办法通过webbrowser控件解决上述问题?

+0

通常情况下,当一个源文件以'//开头时,这意味着特定文件可以通过'http'或'https'服务。在解析时,当前协议通常由网页浏览器附加。作为一个例子,当你在一个安全的页面https:// www.example.com时,这个资源将被读作https://images10.newegg.com/NeweggImage/ProductImageCompressAll125/14-487-346-Z01。 jpg',而在非安全页面http:// www.example.com上,它将被读为'http:// images10.newegg.com/NeweggImage/ProductImageCompressAll125/14-487-346-Z01.jpg' – ImaBrokeDude

如何显示用HTML格式化的RSS Feed数据?

我不确定是否有办法。


有没有办法解决以上WebBrowser控件中描述的问题?

您可以轻松地分析所有的IMG的src属性使用jQuery前面加上http:

$(function() { 
    $('img').attr('src', function(index, src) { 
     return 'http:' + this.getAttribute('src'); 
    }); 
}); 
+0

我不喜欢这个答案,因为你基本上重复他提出的问题,他们已经预先用'http',他们正在寻找一个更好的方法来做到这一点。虽然我不会低估它,因为它可能是所有人都需要的。 – ImaBrokeDude

+0

亲爱的@ImaBrokeDude,这不是一个聊天网站。我们是一群专业程序员。请注意我如何引用OP来内联回答多个问题。 OP要求解决方案。请在下次评论前加倍阅读。谢谢。 –

+0

你好,我不把这个网站当作聊天网站。你可能不喜欢我选择的名字,但我说的是有效的。为什么OP重复完全一样的东西?具体关于预先加入'http'。你可以清楚地看到他们已经做到了。除了为给定问题指定的语言外,您的答案步骤之上,为什么用户应该使用JavaScript来解析C#字符串? – ImaBrokeDude

由于有问题的URL不与协议前缀,它会被认为是一个相对URL,但有显然不会成为本地资源展示。 Moresubject

可以通过使用在Determine if Absolute or Relative URL加上尝试失败的情况下坚持http:src上,并且重试描述的解决方案减轻此。