温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

WebKit.Net winform程序中c#与js怎样互调

发布时间:2021-09-13 09:46:36 来源:亿速云 阅读:116 作者:柒染 栏目:编程语言

本篇文章为大家展示了WebKit.Net winform程序中c#与js怎样互调,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

实验1:

按钮1事件:

currentPage.browser.DocumentText =
                "<html><head><title>Test Page</title></head><body>" +
                "<p id=\"testelement\" style=\"color: red\">Hello, World!</p>" +
                "<div><p>A</p><p>B</p><p>C</p></div>" +
                "<script type=\"text/javascript\">" +
                "function f() { window.open('http://www.pudn.com/Download/item/id/2111740.html', 'myWindow'); }</script>" + 
                "</body></html>

按钮2事件:

currentPage.browser.StringByEvaluatingJavaScriptFromString("f()");

这样当点击按钮1然后再点击按钮2则会跳到pudn中。实验成功。

实验2:

tomcat的webapps/ROOT下有一个index.html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p id="testelement" >Hello, World!</p>
<div><p>A</p><p>B</p><p>C</p></div>
hello world spring boot3
<script type="text/javascript">
function f() { window.open('https://www.baidu.com', 'myWindow'); }
</script>
</body>
</html>

在按钮事件中:

currentPage.browser.IsScriptingEnabled = true;

currentPage.browser.StringByEvaluatingJavaScriptFromString("f()");

能成功跳到baidu.能执行browser_NewWindowRequest和browser_NewWindowCreated事件,但不能执行browser_DocumentCompleted,除非browse执行刷新操作。

https://bbs.csdn.net/topics/390962337/ 和 https://sourceforge.net/p/webkitdotnet/discussion/939856/thread/daaed049/ 有说64位的BUG,或多线程的原因,我做的实验都是异常。

        private void newWindowToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("This is likely to cause a crash. Continue?",
                "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                var thread = new Thread(new ThreadStart(MyThread));
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
            }
        }

        private void MyThread()
        {
            Application.Run(new MainForm());
        }

好象这样设置了ApartmentState.STA也不起作用。

上述内容就是WebKit.Net winform程序中c#与js怎样互调,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI