本篇文章為大家展示了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怎樣互調,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。