gpt4 book ai didi

c# - WebBrowser.InvokeScript() 抛出错误 : 80020006

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:38 26 4
gpt4 key购买 nike

我正在开发 Windows Phone 8 应用程序,我是 Windows Phone 8 的新手。

我正在使用 WebBrowser 控件并尝试加载具有 javascript 的 html 页面。

在 button_Click 事件上我调用 Webbrowser.InvokeScript("JavascriptFunctionName"),但它总是抛出错误:80020006,即使 WebBrowser.isScriptEnabled = true。

下面是代码

HTML 页面:MyHtmlPage.html

<!DOCTYPE html>
<html>
<head title="test">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html {
height: 100%;
}

body {
height: 100%;
margin: 0;
padding: 0;
}

#map-canvas {
height: 100%;
}
</style>

<script type="text/javascript">
function initialize() {

var helloText = document.getElementById("Hello");
helloText.textContent = "Initialized";

return ("Initialize");

}

</script>
</head>
<body>
<div id="test-canvas" />
<label id="Hello">Hello</label>
</body>
</html>

Cs 文件:MainPage.cs

private string TestUri = @"Html/Test.html"; 
private string stringHtml = string.Empty;

public MainPage()
{
InitializeComponent();
WebBrowser.IsScriptEnabled = true;
WebBrowser.IsGeolocationEnabled = true;
}

private void WebBrowser_Loaded(object sender, RoutedEventArgs e)
{
var resource = App.GetResourceStream(new Uri(TestUri, UriKind.Relative));
stringHtml = new StreamReader(resource.Stream).ReadToEnd();
WebBrowser.NavigateToString(stringHtml);
}

private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
//Error
string returnValue = WebBrowser.InvokeScript("initialize");
}
catch(Exception ex)
{
}

帮帮我..谢谢。

最佳答案

当您在 WP8 下使用 NavigateToString 时,脚本不会被执行。下面的测试证明了这一点,body 背景颜色没有变红。

<script type="text/javascript">
document.body.style.backgroundColor = "red";

window.initialize = function() {
document.body.style.backgroundColor = "blue";

var helloText = document.getElementById("Hello");
helloText.textContent = "Initialized";

return ("Initialize");
}
</script>

一种可能的解决方案是在隔离存储中创建一个临时文件,如described here。 .

另一种选择是使用 Navigate("about:blank") 导航到空白页面,句柄 WebBrowser.LoadCompleted事件,然后注入(inject)所需的 HTML 和脚本,如所述here .

关于c# - WebBrowser.InvokeScript() 抛出错误 : 80020006,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21425446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com