当用户首次打开SharePoint网站时,我将弹出“使用期限”模式对话框。我正在使用SP.UI.ModalDialog.showModalDialog()
函数。它是在SharePoint 内容编辑器 Web部件中创建的。
首次打开页面时,“模态”对话框正常工作。但是,如果我再次打开页面,它将无效。任何人都可以帮我解决这个问题吗?这似乎是一个缓存问题?
这是我的JavaScript:
<script type="text/javascript">
function codeAddress() {
alert('ok');
var options = {
url: 'http://www.google.com',
Title: "Survey",
height: 500
};
SP.UI.ModalDialog.showModalDialog(options);
}
window.onload = codeAddress;
</script>
答案 0 :(得分:4)
使用:
而不是window.onload = codeAddress
_spBodyOnLoadFunctionNames.push("codeAddress");
并且SharePoint将在窗口加载时调用您的函数。 _spBodyOnLoadFunctionNames
本身就是一个SharePoint对象。
我遇到了这个问题,遇到了this link,这解释了原因;
在开发使用JavaScript的Web部件或其他控件时,需要在Web页面的Body OnLoad事件上调用某些函数是很常见的。这样做的问题是,在SharePoint中,Body元素位于母版页中,而不在控件中,因此这样做可能会非常棘手。
幸运的是,SharePoint团队使用名为 _spBodyOnLoadFunctionNames 的特殊数组为开发人员提供了一种方便的方法。你唯一要做的就是将你的函数名称推送到这个数组,它将在窗口的OnLoad事件中被调用。