首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CefSharp.PostMessage不能在CefSharp浏览器中工作?

为什么CefSharp.PostMessage不能在CefSharp浏览器中工作?
EN

Stack Overflow用户
提问于 2022-03-05 06:30:43
回答 2查看 902关注 0票数 0

我尝试使用c#中的c#事件来处理浏览器中从JS调用的CefSharp.PostMessage。我甚至从链接下载了一个这个工作的例子。运行示例,它应该做我需要的事情,但是它没有工作,我的代码也不起作用(下面)。CefSharp是删除了这个功能还是改变了它?我需要在CefSettings或ChromiumWebBrowser中启用这个特性吗?

代码语言:javascript
复制
using CefSharp;
using CefSharp.WinForms;

public ChromiumWebBrowser chromeBrowser;

public Form1()
    {
        InitializeComponent();

        string curDir = Directory.GetCurrentDirectory();
        CefSettings settings = new CefSettings();
        Cef.Initialize(settings);
        chromeBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html", curDir));
        chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived;
    }

private void ChromeBrowser_JavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e)
    {
        MessageBox.Show((string)e.Message);
    }

HelloWorld.html在这里

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>

<script>
CefSharp.PostMessage("Hello world!");
</script>

</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-05 17:05:35

  1. CefSharp.PostMessage("Hello world!");是2020年JS的一个新的扩展。确保您正在使用实际的CefSharp。
  2. (新ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html",curDir)); JavascriptMessageReceived事件的订阅已经太晚了,页面可能会被下载,JS可能会一直执行到那个时候。在页面加载之前,您应该订阅事件。chromeBrowser =新ChromiumWebBrowser(“约:空白”);chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived;chromeBrowser.JavascriptMessageReceived curDir);
  3. 确保HelloWorld.html存在于应用程序当前工作目录中。
票数 2
EN

Stack Overflow用户

发布于 2022-03-05 19:16:46

将ChromiumWebBrowser添加到表单中的位置?WinForms ChromiumWebBrowser控件在创建句柄之前不会加载,这在默认情况下是在添加到父控件时发生的。

代码语言:javascript
复制
chromeBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html", curDir));
chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived;
Controls.Add(chromeBrowser);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71360021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档