【问题标题】:Convert c# array to javascript array将 c# 数组转换为 javascript 数组
【发布时间】:2014-01-25 09:57:06
【问题描述】:

我有一个带有webbrowser 控件的windows Dotnet 应用程序。 在按钮上单击它调用带有参数的javascript 函数,javascript 尝试将接收到的参数转换为数组。下面是我的 C# 和 JavaScript 代码

public Form1()
        {
            InitializeComponent();

            webBrowser1.DocumentText = @"<html><head>
                <script type='text/javascript'>
                    function doIt(val) 
                    {
                        data = String(val);
                        chartval = new Array(data);
                        //alert('Method Invoked..................' + data);
                        for (var i = 0; i < chartval.length; i++) 
                            {
                               alert('invoked.....'+chartval[i]);
                            }
                        return 'i did it!';
                    }
                </script>
                </head><body>hello!</body></html>";

        }

        private void button1_Click(object sender, EventArgs e)
        {
            string tempstring="[abcd],[efgh],[ijkl]";
            string []objarr=new string[1];
            objarr[0] = tempstring;

            object y = webBrowser1.Document.InvokeScript("doIt", objarr);
            MessageBox.Show(y.ToString());
        }

这里tempstring 有一千个值。我想将 tempstring 值转换为 javascript 数组

现在我有文字提醒
invoked..... [abcd],[efgh],[ijkl]
我想要 3 个带有文本的警报

invoked..... abcd
invoked..... efgh
invoked..... ijkl

【问题讨论】:

  • 这些[...] 的标志是什么?我没有看到任何使用它们的理由,但一个,好像你有一个像[[...],[...],[...]] 这样的二维数组,我认为你只有一个像["abcd","efgh","ijkl"] 这样的简单数组,如果我错了,请纠正我!
  • @MehranHatami 这只是基于我的项目的模型 sn-p。我从系统中获取了这种数组 'string tempstring="[abcd],[efgh],[ijkl]"',所以我按原样使用它,实际上它包含数千个这样的值。

标签: c# javascript arrays browser webbrowser-control


【解决方案1】:

在你的 javascript 中这样做:

function doIt(val){
    val = String(val);
    var chartval = val.substring(1, val.length - 1).split("],[");
    for (var i = 0; i < chartval.length; i++){
        alert('invoked.....'+chartval[i]);
    }
}

【讨论】:

  • 这只是一个基于我的项目的模型sn-p。我从系统中获取了这种数组 'string tempstring="[abcd],[efgh],[ijkl]"',所以我按原样使用它,实际上它包含数千个这样的值。
猜你喜欢
  • 1970-01-01
  • 2013-11-01
  • 2013-02-12
  • 2020-04-30
  • 2014-07-13
  • 2013-05-26
  • 2011-08-02
  • 2015-09-22
  • 2018-12-16
相关资源
最近更新 更多