我想更改使用JavaScript将主题行存储在Outlook Web App中的文本字段的输入:



该主题文本字段定义为:

<input tabindex="0" class="_f_ql _f_rl textbox allowTextSelection placeholderText" role="textbox" aria-labelledby="MailCompose.SubjectWellLabel" autoid="_f_B2">


我已经使用JavaScript代码尝试了以下方法:

textFieldElement.value = "Example";
textFieldElement.innerHTML = "Example";
textFieldElement.innerText = "Example";


这些工作用于设置有关用户界面的值:



但是,当您单击“发送”时,它们不会修改发布的主题的“真实”值。按下“发送”按钮后,主题将没有任何价值(并在电子邮件中显示为(no subject))。从POST请求中可以看到,除非手动单击元素,将其聚焦,然后手动输入要显示的内容(实际上是使用键盘),否则它不会在其JSON对象中发送subject参数。



如何修改该控件应处理的“真实”主题值?我猜想这是一个MVC控件或某种其他类型的ASP.NET控件...并且我正在尝试使用JavaScript修改.aspx页以编辑此值。

-------------------------------------------------- -------------------------------------------------- --------------------------------------------

编辑:我只能在一种特定情况下设置主题行。首先,我需要物理上单击主题元素。我已经注意到,在此元素上设置类的行为很奇怪:

<input class="_f_ql _f_rl textbox allowTextSelection placeholderText" autoid="_f_B2" role="textbox" tabindex="0" aria-labelledby="MailCompose.SubjectWellLabel">


对此:

<input class="_f_ql _f_rl textbox allowTextSelection" autoid="_f_B2" role="textbox" tabindex="0" aria-labelledby="MailCompose.SubjectWellLabel" maxlength="255">


一旦它处于maxlength =“ 255”的non-placeholderText状态,我就能使用textFieldElement.innerText = "Example";成功更改它的innerText,并在提交时正确发送它。

但是,我不能假定Subject元素会被单击,因此我必须首先使用subject元素的placeholderText版本,并以某种方式使其在进入其他状态时重现此行为。到目前为止,我已经尝试了以下方法,但均未成功:


重点关注placeholderText主题元素,然后设置其innerText。
更改placeholderText主题元素的属性以匹配其非placeholderText版本,然后设置其innerText。

最佳答案

http://msdn.microsoft.com/en-us/library/office/fp161027(v=office.1501401).aspx

看起来您需要使用

Office.context.mailbox.item.subject设置主题。 Outlook使用API​​,因此您需要使用API​​方法。

关于javascript - 如何更改此输入的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26369801/

10-13 04:08