Pergunta

Olá, alguém pode me ajudar a colocar uma tag âncora na página mestra de publicação personalizada do SherePoint.Na verdade, quero abrir uma página do site clicando nesta tag âncora. Esta página do site estará no conjunto de sites de nível superior na galeria "Páginas".Tentei colocar uma âncora e no evento click usei a função "OpenNewFormUrls1()" para ser chamada que está definida no bloco de script na mesma página mestra que:

<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>

Após essas alterações os erros de javascript começam a aparecer, e no primeiro clique na tag âncora nenhuma caixa de diálogo do modelo se abre, enquanto o segundo clique na tag âncora abre a caixa de diálogo do modelo com a página, isso acontece para cada nova visita ao site dentro do coleção de sites.A mensagem de erro que estou recebendo é a seguinte: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%3DAlguém pode me ajudar como posso conseguir isso?e o que estou perdendo aqui?Por favor, ajude.

Foi útil?

Solução

Para o que você está tentando alcançar, não é necessário usar o modelo de objeto cliente.No seu código acima, você usa o modelo de objeto cliente apenas para buscar o URL do site raiz.Mas isso já está presente na página do SharePoint na forma de uma variável javascript.Ver: http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=9

Além disso, notei que você está usando o executeOrDelayUntilScriptLoaded função.Esta função executará seu OpenNewFormUrls1 função em cada carregamento de página.Não apenas quando você clica na tag âncora.Para seus requisitos atuais, não acho que você precise dessa função, pois realmente não precisa usar o modelo de objeto cliente JS.

Considerando todas as coisas, seu bloco de script deve ser assim:

<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>

e depois ligue para o OpenNewFormUrls1 funciona no onclick da sua tag âncora.

Espero que isto ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top