用户首次打开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/

10-12 12:38
查看更多