c# - WebBrowser 控件中的“预期功能”
问题描述
WebBrowser
我在控件中显示了以下 HTML 代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Welcome</title>
<style type="text/css">
/*<![CDATA[*/
body {
font: 8pt Verdana;
background: ThreeDFace;
}
#appname {
line-height: 1;
}
#appname h1 {
margin: 0;
font: bold 10pt Verdana;
}
#appname p {
margin: 0;
}
#actions_list {
list-style-type: none;
padding: 0;
}
/*]]>*/
</style>
<script type="text/javascript">
//<![CDATA[
var ACTION_NEWPROJECT = 0x0001;
var ACTION_NEWFILE = 0x0002;
var ACTION_OPENPROJECT = 0x0003;
var ACTION_OPENFILE = 0x0004;
//]]>
</script>
</head>
<body>
<div id="appname">
<h1>Application</h1>
<p>Slogan</p>
</div>
<div id="actions">
<ul id="actions_list">
<li><a href="#" onclick="window.external.ExecuteAction(ACTION_NEWPROJECT);return false">New project</a></li>
<li><a href="#" onclick="window.external.ExecuteAction(ACTION_NEWFILE);return false">New file</a></li>
<li><a href="#" onclick="window.external.ExecuteAction(ACTION_OPENPROJECT);return false">Open project</a></li>
<li><a href="#" onclick="window.external.ExecuteAction(ACTION_OPENFILE);return false">Open file</a></li>
</ul>
</div>
<div id="recentfiles">
<p>Recent files:</p>
<ul id="recentfiles_list"></ul>
</div>
<script type="text/javascript">
//<![CDATA[
window.onload = function() {
var recentFiles = window.external.GetRecentFiles();
var recentFilesDOMContainer = document.getElementById("recentfiles_list");
for (var i = 0; i < recentFiles.length; i++) {
var index = 0+i;
var fileDOMParent = window.document.createElement("li");
var fileDOMElement = window.document.createElement("a");
fileDOMElement.href = "#";
fileDOMElement.onclick = function() {
window.external.OpenRecentFile(index);
return false;
};
fileDOMElement.innerText = recentFiles[i];
fileDOMParent.appendChild(fileDOMElement);
recentFilesDOMContainer.appendChild(fileDOMParent);
}
};
//]]>
</script>
</body>
</html>
为了与我正在使用该WebBrowser.ObjectForScripting
属性的应用程序进行通信,我可以通过window.external
. 这也很完美。
但是当我尝试打开下面的页面时,出现以下错误:
Script Error
Line: 61
Char: 25
Error: Function expected
Code 0
为什么会这样?它似乎发生在for
循环中。
解决方案
我唯一能想到的是,recentFiles 里面没有数组。您是否尝试打开开发者控制台并输入recentFiles 以查看其中包含的内容?:)
推荐阅读
- javascript - 在使用 javascript 或更少的定义模式后生成 css 代码
- reactjs - XHR 请求在页面加载时表现不佳,但之后更快
- matlab - 在Matlab中找到许多半空间的交集
- intellij-idea - 如何调试基于 groovy 的插件并使用 IntelliJ 进入其源代码?
- python - 创建多个熊猫字符串
- javascript - 尝试使用带有指向不同部分的多个锚链接的 smooth-scrollbar.js
- css - 在前后显示一条带点的线
- powershell - 在 Wix 中隐藏执行 PowerShell
- python - plotly-dash Choropleth mapbox 图中的选择行为
- html - 尝试在css中制作磨砂玻璃效果