C# ActiveX 與JS 互動,只介紹JS呼叫ActiveX的情況
關於如何編寫ActiveX程式,請參考我的部落格 C#編寫ActiveX控制元件 http://blog.csdn.net/hndkbadxv/article/details/9084167
第一步:在控制元件類中加入一個方法和一個屬性
public string ShowNow()
{
return DateTime.Now.ToString();
}
private string _str;
public string str
{//必須要完整寫出get 和 set ,不能只寫 get 或者 set
get{return _str;}
set{_str = value;}
}
第二步:在html中書寫程式碼
object id="ActiveXDemo" name="ActiveXDemo" classid="clsid:0A031CA1-6B7C-409d-8FC8-FFE4E0FCEE94"{控制元件類頭部的GUID} width="400px"
height="38" VIEWASTEXT>
<param name="str" value="用param傳遞控制元件屬性"/> //給屬性str傳值
</object>
<input type="button" onclick="alter(ActiveXDemo.ShowNow());" value="測試" ></input> //呼叫方法
如果遇到如下網頁左下角提示:物件不支援此屬性或方法
解決方法:1,控制元件類頭部是否只有GUID屬性,如果有其它屬性,則刪除,例如:[Guid("0A031CA1-6B7C-409d-8FC8-FFE4E0FCEE94"), ClassInterface(ClassInterfaceType.None), ComVisible(true)],把黃色部分刪除掉;重新打包並部署
2,如果執行了 1 之後還提示相同的錯誤,則看看 控制元件類頭部的GUID是否與 專案 --》 右鍵 --》 屬性 --》 應用程式 --》程式集資訊 中的GUID相同了,如果相同,則把後者改成其他值
如果有不明白的地方,可以留言諮詢,嘿嘿