用户首次打开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>
最佳答案
代替window.onload = codeAddress
,使用:_spBodyOnLoadFunctionNames.push("codeAddress");
SharePoint将在窗口加载时调用您的函数。 _spBodyOnLoadFunctionNames
本身是SharePoint对象。
我遇到了这个问题,遇到了this link,这解释了原因;
在开发使用JavaScript的Web部件或其他控件时,通常需要在网页的Body OnLoad事件上调用某些函数。这样做的问题是,在SharePoint中,Body元素在母版页中而不在控件中,因此这样做很棘手。
幸运的是,SharePoint团队使用称为_spBodyOnLoadFunctionNames的特殊数组,为开发人员提供了一种轻松实现此目的的方法。唯一要做的就是将函数的名称推送到此数组,它将在窗口的OnLoad事件中被调用。
关于javascript - SharePoint 2010中的Javascript window.onload问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9808498/