我开发了一个 Outlook 插件(自定义任务窗格),在用户控件中带有 Web 浏览器。
当我在网络浏览器的文本框中写入内容时,退格键或删除按钮旁边的所有功能都运行良好,但我无法使用这些键,我是否遗漏了什么?
我迟到了几年,但我设法解决了这个问题。解决此问题的最简单方法是确保输入字段获得适当的焦点,因此您需要能够在加载的任何页面上运行自己的 javascript。
我在页面上运行的javascript如下(使用jQuery):
$(document).on("click", function (e) {
// first let the add-in give focus to our CustomTaskPane
window.external.focus();
// then in our web browser give focus to whatever element was clicked on
$(e.target).focus();
});
window.external 变量包含从插件(我假设是 c# 或 VB)运行的代码,该代码是公开的,因此我们可以从网页交互回加载项。
在自定义任务窗格的加载项代码中设置 window.external 的上下文:
// event when webBrowser is finished loading document
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// sets context of window.external to functions defined on this context
webBrowser1.ObjectForScripting = this;
}
以及一个公共的聚焦方法:
// can be called by the web browser as window.external.focus()
public void focus()
{
this.Focus();
}
这对我有用,我希望它对其他人有帮助。尽管请注意,如果用户键盘使用选项卡导航,这可能不起作用,但您可以针对该用例扩展此代码,或者安全地假设普通 Outlook 用户将手粘在鼠标上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)