我正在尝试在Sharepoint 2010中做一些应该非常简单的事情,创建一个更改页面的按钮(当它发生时为“创建新项目”)。
我设置了一个内容编辑器Webpart并在其中放置一个按钮(不是在表单中,因为在Sharepoint中整个页面是一个表单),其中“onclick”处理程序更改了windows.location.href。
2010年,当您尝试输入非平凡的HTML时,CEWP会对您产生一些影响,它会像“&”那样转义字符。这可能是一个真正的痛苦。但最后我输入了正确的内容。
它不起作用(页面只是在不更改URL的情况下自行刷新)。通过检查StackOverflow,我找到了一些针对CEWP内容的更健壮表单的建议,最终结果为 -
<script type="text/javascript">
function submit_rec(){
window.location.href = "<my server root URL>/Lists/Rec/NewForm.aspx";
return;
}
</script>
<button onclick="javascript:return submit_rec();return false"/>Submit a Recommendation</button>
这是奇怪的部分。
如果我使用Firebug并在submit_rec()函数中放置一个断点,这可以正常工作。但是没有断点,它会回到总是返回当前页面的行为。
似乎存在时间问题,或者在我的URL开始加载后,Sharepoint正在控制,并再次重新加载原始页面!
之前有人见过这个并找到解决方案吗?
我们非常感谢您的意见和建议。
问候:colin_e
答案 0 :(得分:0)
感谢所有回复的人。通过一些更多的实验,以及来自Stackoverflow上其他线程的提示,我终于能够实现这一点。
我上次使用Sharepoint内置 OpenNewFormUrl()函数时的错误是期望这将是SP在中央库中定义的全局函数。事实证明不是,它必须在每个使用它的页面上单独定义,部分原因是它硬编码了库编辑表单的弹出框架的大小。
(是的,这很丑陋,就像很多Sharepoint一样,无论如何,我离题了......)
我能够使用内容编辑器WebPart中的以下代码,使用与标准SP文档中心“提交文档”按钮相同样式的按钮来使用Sharepoint 2010样式的“弹出”编辑器。我不知道脚本的详细内容,我只是从文档中心网站模板主页中复制了它 -
<script type="text/javascript">
// <![CDATA[
function ULS18u(){var o=new Object;o.ULSTeamName="DLC Server";o.ULSFileName="default.aspx";return o;}
var navBarHelpOverrideKey = "wssmain";
// ]]>
function OpenNewFormUrl(url)
{ULS18u:;
var options = {width:640, height:720};
SP.UI.ModalDialog.commonModalDialogOpen(url, options, null, null);
}
</script>
<div class="ms-uploadbtnlink">
<button onclick="javascript:OpenNewFormUrl('/dev/KfD/KfDdev/Lists/Recommendation/NewForm.aspx');return false;" type="submit"><nobr><img alt="Submit a Recommendation" src="/_layouts/Images/uploaddoc.png"/> <span>Submit a Recommendation</span></nobr>
</button>
</div>
如果(比方说)用户屏幕小于硬编码的弹出窗口大小,我会担心这会做什么设置,而且我仍然对为什么我之前(和更简单)的努力失败感到困惑,但是至少我有一个工作解决方案。
答案 1 :(得分:0)
试试这个:
javascript:SP.UI.ModalDialog.OpenPopUpPage('/dev/KfD/KfDdev/Lists/Recommendation/NewForm.aspx');return false;
onclick事件中的