为什么WebBrowser控件在保存后不能正确显示HTML
Why does the WebBrowser control not display HTML correctly after it has been saved?
我读了很多相关的答案,但我仍然没有发现问题。我认为MY的问题是我没有很好地掌握HTML和潜在的javascript的基础知识。我说的是它们是如何结合在一起并运行的,而不是特定的语言语法。也许有人能给我一个全面的解释,说明这里出了什么问题。
我使用一个简单的WebBrowser控件导航到一个网页。这将使所有内容都能正确显示。现在,我想在机器上本地保存HTML内容,稍后再次打开它,然后在另一个WebBrowser控件中呈现它。到目前为止,这还没有奏效。页面呈现得很简短,但没有图像和效果,然后我得到了一个关于脚本的例外。所以我决定做一个非常简单的测试。我会从浏览器中获取HTML,然后立即将文本读回浏览器。
成功导航到页面后,我得到如下HTML文本:
string html = myWebBrowser.DocumentText;
然后,我立即将DocumentText属性设置为其原始值。
myWebBrowser.DocumentText = html;
这会给我带来与其他应用程序读取保存的HTML相同的错误和效果。那么这里发生了什么?浏览器最初成功地显示了所有内容,但随后提取并重新加载HTML文本会破坏所有内容。我一定错过了一个非常明显和基本的概念。是否WebBrowser控件的DocumentText属性实际上并没有返回原始HTML代码,而是返回了修改后的版本?还是该属性的设置修改了某些内容?两者都不是吗?感谢所有能让我理解这一切的人。
这是经过设计的。HTML不是一个完全包含的文件。浏览器将解析html,并从其他url中提取资源,包括脚本、图像、样式等。如果只保存html,然后在浏览器中打开该文件,许多资源将找不到,因为它们依赖于从相对于html文件的位置加载的html。一旦文件在您的计算机上,到资源的任何相对链接都将无效,导致浏览器只显示基本html和由绝对路径而非相对路径引用的任何资源。
- Brightcove获取/显示HTML中的当前视频标题和描述
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 使用jqLite隐藏和显示html元素
- 如何在不打断标记的情况下突出显示html字符串中的文本
- JS来显示HTML标记
- 如果javascript打开/关闭,则隐藏和显示html代码
- 用javascript显示html表
- 显示HTML代码块
- Regex有助于突出显示html中匹配文本的角度过滤器
- 为什么WebBrowser控件在保存后不能正确显示HTML
- 如何通过ibmworklight中的sql适配器从db2中检索或显示html页面上的数据?android混合应用程序开发
- 如何使用window.showModalDialog()显示HTML内容
- JavaScript if else 语句来显示 html 标签
- 使用 js 函数显示 HTML 表单的结果
- 如何在不点击的情况下突出显示 HTML 中的文本
- 如何隐藏和显示 html 输入文本和段落
- 使用 javascript 解析和显示 HTML 音频当前时间
- 有什么方法可以在HTML页面中显示HTML代码吗
- 在自动完成jqueryUi中显示html
- 单击并用CTRL+C复制值时高亮显示html表格单元格