我在我的WPF
应用中将JavaScript代码添加到WebBrowser控件中。在我的JavaScript代码中,我使用函数Object.freeze()
,当我运行应用程序时会出现以下错误。
带有WebBrowser控件的 .xaml 如下所示。
<Window x:Class="TestWPFApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestWPFApp"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<WebBrowser x:Name="ProgressBarWeb" HorizontalAlignment="Left" Height="300" VerticalAlignment="Top" Width="300"/>
</Grid>
</Window>
我的HTML和JavaScript代码添加了NavigateToString()
函数
public MainWindow()
{
InitializeComponent();
//Js Code is a extract but the effect is the same
var html = "<html><head><script>" +
"var platformtypes = {"Attr1": 0, "Attr2": 1};" +
"Object.freeze(platformtypes);" +
"</script></head><body></body></html>"
ProgressBarWeb.NavigateToString(html);
}
我现在的问题是:
答案 0 :(得分:0)
我已使用chefsharp解决了这个问题。
在.xaml
我添加了
<ContentControl x:Name="browserContainer" Height="300" Width="300" Content=""/>
并在我使用的代码中
var html = "<html><head><script>" +
"var platformtypes = {"Attr1": 0, "Attr2": 1};" +
"Object.freeze(platformtypes);" +
"</script></head><body></body></html>";
var base64EncodedHtml = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));
var browser = new ChromiumWebBrowser()
{
Address = "data:text/html;base64," + base64EncodedHtml,
RenderProcessMessageHandler = new RenderProcessMessageHandler()
};
browserContainer.Content = browser;