2014-01-25 148 views
0

我有一個windows Dotnet應用程序與webbrowser控件。 在一個按鈕上單擊它調用一個javascript函數與參數和JavaScript嘗試將接收到的參數轉換爲數組。下面是我的C#和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報警並在你的JavaScript文本

invoked..... abcd 
invoked..... efgh 
invoked..... ijkl 
+0

這些''跡象是什麼?我沒有看到任何理由在這裏使用它們,而是使用它們,就好像你有一個二維數組像'[[...],[...],[...]]',我想你只是一個簡單的數組,如'[「abcd」,「efgh」,「ijkl」]',如果我錯了,請糾正我! –

+0

@MehranHatami這只是一個基於我的項目的模型片段。我從系統中獲取這種類型的數組'string tempstring =「[abcd],[efgh],[ijkl]」',所以我使用它,實際上它包含數千個這樣的值。 – madan

+0

可能是一個重複:[加載並傳遞JScript數組到C#(而不是C)COM組件](http://stackoverflow.com/questions/20941906/loading-and-passing-jscript-arrays-from-to-c -sharp-不-C-COM-分量)。 – Noseratio

回答

0

做到這一點:

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]); 
    } 
} 
+0

這只是基於我的項目的模型片段。我從系統中獲取這種類型的數組'string tempstring =「[abcd],[efgh],[ijkl]」',所以我使用它,實際上它包含數千個這樣的值。 – madan

+0

@madan:我已經更新了我的答案,查看了一下。 –