我嘗試爲C#方法創建COM組件,然後嘗試使用javascript訪問此方法。Javascript Com數組給我錯誤的數組值
我已經爲創建共享程序集運行GACUtil -i和Regasm/Codebase命令,並且還成功註冊到註冊表中。 這是我的C#方法,它爲此返回一個int []數組,爲此方法創建一個COM組件。 nChannelsCount = 15這是用在for循環
[Guid("4794D615-BE51-4a1e-B1BA-453F6E9337C4")]
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(IComOjbect))]
public class MyComObject : IComOjbect
{
}
[Guid("4B3AE7D8-FB6A-4558-8A96-BF82B54F329C")]
[ComVisible(true)]
public interface IComOjbect
{
[DispId(0x10000009)]
int[] GetData(int index);
}
但是,當我訪問此方法在JavaScript它給了我,只是計數的15,但我想5500在快速觀看中顯示該節目。我不知道如何做到這一點的JavaScript來實現這一目標代碼,但我仍然嘗試這段JavaScript代碼如下
<html>
<head>
<title>My Com Component</title>
<object id="myComComponent" name="myComComponent" classid="clsid:4794D615-BE51-4A1E-B1BA-453F6E9337C4">
</object>
<script language="javascript" type="text/javascript">
function MyComComponent_onload()
{
try {
var nAllData = [];
for (var index = 0; index < 15; index++)
{
nAllData.push(myComComponent.GetData(index));
}
alert(nAllData.length);
}
catch (err) {
alert(err.message);
}
}
</script>
</head>
<body onload="MyComComponent_onload();" onunload="MyComComponent_onunload();">
</body>
</html>
所以,你想你的數組在JS中是5500長,但只想填充它的前15個值? – Medinoc
@Medinoc他從COM組件中返回5500長度的數組中的組件從上面的場景提到他在question.in javscript他獲得數組長度(15),而不是(5500)....警報(nAllData.length)他得到陣列長度15; –
@Medinoc我想快速監視數組(顯示在屏幕截圖中)到JavaScript數組中。 – IMMORTAL