我正在使用win-forms WebControl(也尝试使用内置的WPF浏览器),它的内容是简单的html和JavaScript文件,定义为嵌入式资源。
对于我的POC,所有文件都必须嵌入。
XAML :
<Window x:Class="WebPOC.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:forms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="MainWindow" Height="350" Width="525">
<Grid>
<WindowsFormsHost>
<forms:WebBrowser x:Name="WebBrowser"/>
</WindowsFormsHost>
</Grid>
的代码隐藏:
public MainWindow()
{
InitializeComponent();
var stream = Assembly.GetEntryAssembly().GetManifestResourceStream("WebPOC.www.index.html");
WebBrowser.DocumentStream = stream;
}
网络内容:
alert("test");
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<script src="js/test.js"></script>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>
由于某种原因,链接的JavaScript文件会出错:
任何想法?
答案 0 :(得分:0)
在您的应用程序中,WebBrowser加载HTML页面。该页面来自资源,此时无关紧要。
现在webbrowser想要渲染你的页面并解析HTML。在解析它时,它理解它必须加载另一个“文件”js/test.js
,我认为它也存储在您的资源中。
您的webBrowser不知道他需要从资源加载js/test.js
,我认为他试图以某种方式发送HTTP请求,这将失败。
简短回答:不要将嵌入式资源用于相互链接的HTML文件:您的实例化webBrowser将无法在它们之间导航