如何更改此输入的值?

时间:2014-10-14 20:34:16

标签: javascript html asp.net .net asp.net-mvc

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

enter image description here

此主题文本字段定义为:

<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";

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

enter image description here

但他们不会修改&#34;真实&#34;单击“发送”时发布的主题的值。点击“发送”按钮后,主题不会显示任何值(并在电子邮件中显示为(no subject))。我可以从POST请求中看到,除非我手动点击元素,将其聚焦,然后手动输入我希望它显示的内容,物理上使用键盘,它不会在其JSON对象中发送主题参数。

enter image description here

如何修改&#34;真实&#34;该控件有望处理的主题值?我猜这是一个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 =&#34; 255&#34;,我就可以使用textFieldElement.innerText = "Example";成功更改其上的innerText,并且在提交时,这将被正确发送。

但是,我不能假设将单击Subject元素,因此我必须首先使用subject元素的placeholderText版本,然后以某种方式让它重现此行为进入另一个状态。到目前为止,我已经尝试了以下方法但没有成功:

  • 聚焦placeholderText主题元素,然后设置其innerText。
  • 更改placeholderText主题元素的属性以匹配它的非placeholderText版本,然后设置其innerText。

1 个答案:

答案 0 :(得分:1)

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

看起来你需要使用

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