Вопрос

Привет, кто-нибудь может помочь мне разместить тег привязки на главной странице пользовательской публикации SherePoint.На самом деле я хочу открыть страницу сайта, щелкнув по этому тегу привязки, эта страница сайта будет находиться в семействе сайтов верхнего уровня в галерее "Страницы".Я попытался установить привязку и при событии click использовал функцию "OpenNewFormUrls1()" для вызова, которая определена в блоке script на той же главной странице, что и :

<script type="text/javascript>" 
SP.SOD.executeOrDelayUntilScriptLoaded(OpenNewFormUrls1, 'SP.js');
function OpenNewFormUrls1() {
    var context= SP.ClientContext.get_current();
        var site=context.get_site();
context.executeQueryAsync(Function.createDelegate(this,this.onSuccess), Function.createDelegate(this, this.onFailure));
        context.load(site);
        var serverRelativeURL=site.get_serverRelativeUrl();
        ULS18u: ; 
        var options = { width: 500, height: 500 };
SP.UI.ModalDialog.commonModalDialogOpen(serverRelativeURL + "/Pages/openNew.aspx", options, null, null); 
    }
    function onSuccess(sender, args) {
        }
        function onFailure(sender, args) {
        }
</script>

После этих изменений начинают появляться ошибки javascript, и при первом щелчке по тегу привязки диалоговое окно модели не открывается, тогда как при втором и последующем щелчке по тегу привязки открывается диалоговое окно модели со страницей, это происходит при каждом новом посещении сайта в семействе сайтов.Сообщение об ошибке, которое я получаю, выглядит следующим образом :Message: The property or field has not been initialized. It has not been requested or the request has not been executed. It may need to be explicitly requested. URI: http://sp2010/_layouts/sp.runtime.debug.js?rev=f2An00kVlALdMLzcBc1cug%3D%3D Кто-нибудь может мне помочь, как я могу этого добиться?и чего мне здесь не хватает?Будьте добры, помогите.

Это было полезно?

Решение

Для того, чего вы пытаетесь достичь, вам не нужно использовать объектную модель клиента.Из приведенного выше кода следует, что вы используете объектную модель клиента только для получения URL-адреса корневого сайта.Но это уже присутствует на странице SharePoint в виде переменной javascript.Видеть: http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=9

Кроме того, я заметил, что вы используете executeOrDelayUntilScriptLoaded функция.Эта функция выполнит ваш OpenNewFormUrls1 функция при каждой загрузке страницы.Не только тогда, когда вы нажимаете на тег привязки.Для вашего текущего требования я не думаю, что вам нужна эта функция, поскольку вам действительно не нужно использовать объектную модель клиента JS.

Итак, учитывая все обстоятельства, ваш блок скрипта должен быть таким:

<script type="text/javascript>" 

function OpenNewFormUrls1() {

var options = {
        url: _spPageContextInfo.siteServerRelativeUrl + "/Pages/openNew.aspx",
        width: 500,
        height: 500,
        title: "My Page",
    };
    SP.UI.ModalDialog.showModalDialog(options);
 }
</script>

а затем позвоните в OpenNewFormUrls1 функция при нажатии на ваш привязочный тег.

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top