javascript - CEFSharp“未捕获的 ReferenceError:方法未定义\n@ about:blank:1:0”
问题描述
我在 WPF 应用程序中使用 CEFSharp。
目前我正在基于铬的浏览器中加载本地 html 文件。
xml
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Name="buttonTest" Content="Click me" Grid.Row="0" Width="50px" Height="30px" Click="buttonTest_Click" />
<!--<WebBrowser Name="webBrowser" Grid.Row="1" />-->
<!--<WebBrowser Name="webBrowser" Grid.Row="1" />-->
<wpf:ChromiumWebBrowser x:Name="webBrowser" Grid.Row="1"/>
</Grid>
CS
BrowserSettings browserSettings = new BrowserSettings();
browserSettings.FileAccessFromFileUrls = CefState.Enabled;
browserSettings.Javascript = CefState.Enabled;
browserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
webBrowser.BrowserSettings = browserSettings;
webBrowser.Address = "file:///" + path;
加载 html 工作正常。
现在我试图通过单击 WPF 按钮调用 javascript 函数。
private async void buttonTest_Click(object sender, RoutedEventArgs e)
{
try
{
if (webBrowser.IsBrowserInitialized)
{
var task = await webBrowser.EvaluateScriptAsync("document.body.style.background = 'red';");
var task1 = await webBrowser.EvaluateScriptAsync("startInterval()", new Object { });
//webBrowser.ExecuteScriptAsync("alert(2 + 2);");
}
//webBrowser.InvokeScript("startInterval");
}
catch (Exception ex)
{
}
}
html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<link rel="stylesheet" href="css/site.css" />
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/site.js"></script>
<script type="text/javascript">
$(function () {
'use strict';
function startInterval() {
alert("qqf5");
}
function clearInterval() {
}
$("#buttonGetData").click(function () {
startInterval();
});
});
</script>
</head>
<body>
<div class="container">
<main role="main" class="pb-3">
<button type="button" id="buttonGetData">Get Data!</button>
</main>
</div>
</body>
</html>
如果我单击按钮,则从 wpf 中更改页面背景颜色,但不调用方法。
但是,如果我从 html 页面单击它,它工作正常。
我在这里缺少什么?
解决方案
推荐阅读
- javascript - 将选项属性添加到 HTML 表格中的选定行
- elasticsearch - 弹性搜索中单个主分片的默认位置?
- python - 只有在不同的线程中输入才会导致 EOFError
- typescript - MikroORM 拒绝连接到 docker 容器中的 postgres
- javascript - 计算哪个 JS 选择器将优先
- dart - 未定义的类'PriorityQueue'
- c# - 当我在winforms C#中使用web api发布数据时的状态码200
- reactjs - 道具、TailwindCSS 和 Twin.Macro
- python - 将多处理和并行性应用于 numpy 函数
- sql - 在 SQL 中使用外连接