Javascript window.onload проблема в SharePoint 2010 - PullRequest
2 голосов
/ 21 марта 2012

Я собираюсь открыть модальное диалоговое окно «Срок использования», когда пользователь впервые открывает сайт SharePoint.Я использую функцию SP.UI.ModalDialog.showModalDialog().Он создается в веб-части SharePoint Content Editor .

Когда я впервые открываю страницу, модальное диалоговое окно работает нормально.Однако, это не работает, если я снова открою страницу.Может ли кто-нибудь помочь мне, как решить эту проблему?Это похоже на проблему с кешированием?

Вот мой 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> 

1 Ответ

4 голосов
/ 23 мая 2012

Вместо window.onload = codeAddress используйте:

_spBodyOnLoadFunctionNames.push("codeAddress");

и SharePoint вызовет вашу функцию при загрузке окна. _spBodyOnLoadFunctionNames сам по себе является объектом SharePoint.

У меня была эта проблема, и я наткнулся на эту ссылку , которая объясняет причину;

При разработке веб-частей или других элементов управления, использующих JavaScript, достаточно часто вызывать какую-либо функцию в событии Body OnLoad веб-страницы. Проблема в том, что в SharePoint элемент Body находится на главной странице, а не в элементе управления, поэтому сделать это может быть непросто.

К счастью, команда SharePoint дала разработчикам простой способ сделать это, используя специальный массив с именем _spBodyOnLoadFunctionNames . Единственное, что вам нужно сделать - это вставить имя вашей функции в этот массив, и она будет вызвана в событии OnLoad окна.

...