最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

C# OpenWebKitSharp .NET 4 - How to call javascript - Stack Overflow

programmeradmin0浏览0评论

I am trying to call javascript using OpenWebKitSharp from WinForms with .NET 4

Here is the code I am trying to use.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using WebKit;
using WebKit.Interop;
using WebKit.JSCore;
using webkitForm.Properties;

namespace webkitForm
{
    public partial class Form1 : Form
    {

        WebKitBrowser webKitSharpBrowser = new WebKitBrowser();

        public Form1()
        {
            InitializeComponent();

            this.Controls.Add(webKitSharpBrowser);
            webKitSharpBrowser.Width = 600;
            webKitSharpBrowser.Height = 400;


        }


        private void button1_Click(object sender, EventArgs e)
        {
            webKitSharpBrowser.Preferences.AllowPlugins = true;
            webKitSharpBrowser.UseJavaScript = true;
            webKitSharpBrowser.Navigate("");


            webKitSharpBrowser.GetScriptManager.EvaluateScript("alert('An alert from C#!');"); //Call javascript?

        }

    }
}

I can't get javascript to fire for anything... there must be something that I am missing.

Thanks in advance.

I am trying to call javascript using OpenWebKitSharp from WinForms with .NET 4

Here is the code I am trying to use.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using WebKit;
using WebKit.Interop;
using WebKit.JSCore;
using webkitForm.Properties;

namespace webkitForm
{
    public partial class Form1 : Form
    {

        WebKitBrowser webKitSharpBrowser = new WebKitBrowser();

        public Form1()
        {
            InitializeComponent();

            this.Controls.Add(webKitSharpBrowser);
            webKitSharpBrowser.Width = 600;
            webKitSharpBrowser.Height = 400;


        }


        private void button1_Click(object sender, EventArgs e)
        {
            webKitSharpBrowser.Preferences.AllowPlugins = true;
            webKitSharpBrowser.UseJavaScript = true;
            webKitSharpBrowser.Navigate("http://sandbox.icontact.");


            webKitSharpBrowser.GetScriptManager.EvaluateScript("alert('An alert from C#!');"); //Call javascript?

        }

    }
}

I can't get javascript to fire for anything... there must be something that I am missing.

Thanks in advance.

Share Improve this question edited Sep 15, 2012 at 22:29 McGarnagle 103k31 gold badges234 silver badges261 bronze badges asked Sep 15, 2012 at 18:54 David EatonDavid Eaton 5642 gold badges10 silver badges22 bronze badges 1
  • Well It appears that the answer is the question. Hum the reason why the alert did not toggle is a mystery to me, but other javascript works just fine.. I wondered why someone was giving me credit for this question.. because it works I guess... – David Eaton Commented Sep 23, 2012 at 0:51
Add a ment  | 

2 Answers 2

Reset to default 3

Well, it seems like it can't be done the way you want to:

if you are using .NET 4, calling a function is possible by using:

<webkitbrowser>.GetScriptManager.CallFunction("name", new Object[] { arg1, arg2, ...}); 

If you want to use .NET 2 you can use:

<webkitbrowser>.StringByEvaluatingJavaScriptFromString("name(arguments)")

- Open Webkit Sharp Issues

I tested your code, it IS working, but calling the alert function only triggers an event (WebKitBrowser.ShowJavaScriptAlertPanel), you are responsible for handling that event and showing a message or updating a label, or anything else.

For example:

Browser.ShowJavaScriptAlertPanel += Browser_ShowJavaScriptAlertPanel;

and then handle the event:

private void Browser_ShowJavaScriptAlertPanel(object sender, WebKit.ShowJavaScriptAlertPanelEventArgs e)
{
    MessageBox.Show(e.Message);
}
发布评论

评论列表(0)

  1. 暂无评论