在Outlook webview中从javascript调用ActiveX方法
所以社区 我目前正在写一个项目,在Outlook中集成一些自定义视图和表单。 我们的想法是创建一个连接到ERP的Outlook扩展。 正如在这个示例项目()中发现的,一种技术是构建ActiveX组件并从轻量级本地html页面加载它,如下所示:在Outlook webview中从javascript调用ActiveX方法,javascript,c#,html,outlook,activex,Javascript,C#,Html,Outlook,Activex,所以社区 我目前正在写一个项目,在Outlook中集成一些自定义视图和表单。 我们的想法是创建一个连接到ERP的Outlook扩展。 正如在这个示例项目()中发现的,一种技术是构建ActiveX组件并从轻量级本地html页面加载它,如下所示: <html> <body rightmargin = '0' leftmargin ='0' topmargin ='0' bottommargin = '0' onload='OnBodyLoad()'> <
<html>
<body rightmargin = '0' leftmargin ='0' topmargin ='0' bottommargin = '0' onload='OnBodyLoad()'>
<object classid='clsid:f746a8b6-3659-4f4c-8518-6336187854f2' ID='MyView' VIEWASTEXT width='100%' height='100%'/>
<script>
function OnBodyLoad() {
try {
var oApp = window.external.OutlookApplication;
var view = document.getElementById('MyView');
view.Initialize(oApp);
}
catch(err) {
alert(err.description);
}
}
</script>
</body>
</html>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("F746A8B6-3659-4F4C-8518-6336187854F2")]
public partial class MyView : UserControl
{
public MyView()
:base()
{
Application.EnableVisualStyles();
InitializeComponent();
}
public String Str { get; set; }
public void Initialize(Object app)
{
MessageBox.Show("Initialized");
//MessageBox.Show(app.Version);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(this, "It works!");
}
}
它在RegAsm公司签字注册。
当我在IE中加载它时,它就像一个符咒。我在启动时收到消息“Initialized”,当我点击按钮1时,消息“ItWorks”也会弹出
但是(当然有一个'BUT':)当我在Outlook(文件夹属性/主页)中加载此页面时,ActiveX组件被加载并可见,但是初始化调用抛出此错误:“对象不支持此属性或方法”。单击按钮1可以工作
尝试使用javascript从Str向属性分配某些内容在Outlook中也会失败,在IE中也能正常工作
这里有没有人面临同样的问题,知道我错过了什么
多谢各位
尼古拉斯我面临着同样的问题。我在MSDN上看到了你的另一篇文章,但答案不是我所期望的。你解决了这个问题吗?不幸的是,没有,我放弃了这个方法。这是一个遗憾,因为它非常有前途:(