如何在回复模式下加载 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,回复窗格将自动打开对于用户。
我有一个用于讨论的 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,回复窗格将自动打开对于用户。