javascript - 从 C# Winforms 执行 JavaScript 代码

标签 javascript c# winforms translation

我正在尝试使用 Winforms 执行 JavaScript,并且我想从 JavaScript 代码中获取文本。我需要使用谷歌翻译服务翻译几行。我遇到了这个很好的 Javascript 代码,它翻译给定的消息并将其显示在警告框中:

<html>
<head>
<script type='text/javascript' src='http://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load('language','1');
function init () {
google.language.translate('How are you?', 'en', 'es', function (translated) {
    alert(translated.translation);
});
}
google.setOnLoadCallback(init);
</script>
</head>
    <body>
    </body>
</html> 

有什么方法可以让我传递任何字符串而不是“你好吗?” & 如果我可以在 C# WinForms 上下文中获取翻译后的文本(从警告框​​或使用任何 var)。

最佳答案

好的,我做了一点研究。所以在您的表单中添加一个网络浏览器,然后我敢打赌这对您来说会很好:

    public Form1()
    {
        InitializeComponent();
        webBrowser1.ObjectForScripting = new MyScript();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        string myTranslatedText = "Hello, how are you?";
        webBrowser1.DocumentText = @"
            <html>
            <head>
                <script type='text/javascript' src='http://www.google.com/jsapi'></script>
                <script type='text/javascript'>
                    google.load('language','1');
                    function init () {
                    google.language.translate('" + myTranslatedText + @"', 'en', 'es', function (translated) {
                        window.external.CallServerSideCode(translated.translation);
                    });
                    }
                    google.setOnLoadCallback(init);                        
                </script>
            </head>
                <body>
                </body>
            </html>";
    }
    [ComVisible(true)]
    public class MyScript
    {
        public void CallServerSideCode(string myResponse)
        {
            Console.WriteLine(myResponse); //do stuff with response
        }
    }

关于javascript - 从 C# Winforms 执行 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8240746/

相关文章:

c# - 如何设置默认组合框

c# - 如何在直线上和曲线下填充所有内容?

javascript - 如何在selenium python中定位脚本标签中的元素

javascript - 如何在 qooxdoo 构建过程中禁用优化?

c# - LINQ to SQL 转换为自定义方法的 SQL

c# - 只读字典 - 多线程调用 .ContainsKey 方法

c# - 将大量文本写入文本框

javascript - 为什么 $(this) 在这里不起作用?

javascript - 是否可以仅在 d3 js 中为树布局的子节点绘制虚线链接

c# - 支持多个用户输入属性的应用程序架构