如何在回复模式下加载 SharePoint 2013 讨论页面?

How do I load a SharePoint 2013 discussion page in Reply mode?

我有一个用于讨论的 SharePoint 2013 社区网站。我想创建一个 link 到一个特定的讨论项目,它将以 "Reply" 模式打开讨论项目,即如果您单击讨论项目文本下方的回复按钮就会进入的模式。我想这样做是因为回复模式文本输入框就在讨论项文本的正下方,很明显。默认的回复文本输入框位于页面底部,如果已经有很多关于该主题的回复,它会滚出页面。

这是讨论项的默认视图

如果点击"Reply"link这里

然后回复窗格会在讨论项文本的正下方打开。

但我想做的是能够通过邮件发送一个 URL,这将打开已经处于回复模式的讨论线程。

我找到的解决方案包括使用客户端脚本自定义 /Lists/Community Discussion/Flat.aspx,如下所示。

首先在页面中插入脚本编辑器(设置 -> 编辑页面 -> 添加 Web 部件 -> 类别 -> 媒体和内容 -> 内容编辑器 -> 脚本编辑器。

接下来将 jquery.min.js 的副本上传到站点资产库。

然后使用编辑代码段将以下代码添加到脚本编辑器中:

<script src="/SiteAssets/jquery.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">

 $(document).ready(function() {

    if (location.search.indexOf('replyMode=1') != -1)
    {
      openReplyPane();
    }
  });

function openReplyPane()
{
var mouseEvent = new MouseEvent("click", {
  'bubbles': true,
  'cancelable': true,
  'view': window,
  'detail': 0,
  'screenX': 0,
  'screenY': 0,
  'clientX': 0,
  'clientY': 0,
  'ctrlKey': false,
  'altKey': false,
  'shiftKey': false,
  'metaKey': false,
  'button': 0,
  'relatedTarget': null,
  'currentTarget': 'form#aspnetForm',
  'srcElement': 'a#commandBar0-reply-Link.ms-secondaryCommandLink',
  'target':'a#commandBar0-reply-Link.ms-secondaryCommandLink',
  'timeStamp':1425842811416,
  'toElement':'a#commandBar0-reply-Link.ms-secondaryCommandLink'
});

var replyLink = document.getElementById('commandBar0-reply-Link');

replyLink.dispatchEvent(mouseEvent);
}
</script>

保存您的更改。

现在,如果您将字符串“&replyMode=1”添加到讨论项的 URL 末尾,您可以导航到 post,回复窗格将自动打开对于用户。