Pregunta

Hola alguien me puede ayudar en la colocación de una etiqueta de anclaje en SherePoint personalizado publicación en la página maestra.En realidad quiero abrir una página web al hacer clic en esta etiqueta de anclaje, esta página del sitio será en el sitio de nivel superior de la colección de "Páginas" de la galería.Traté de poner un ancla y haga clic en evento utilizado "OpenNewFormUrls1()" función que está definida en el bloque de secuencia de comandos en la misma página principal como :

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

Después de estos cambios, los errores de javascript empiezan a aparecer, y en primer lugar haga clic en la etiqueta de anclaje no hay un modelo de diálogo abrir, mientras que el 2º y después haga clic en la etiqueta de anclaje abrir el cuadro de diálogo modelo con la página, esto sucede para cada nueva visita al sitio dentro de la colección de sitios.El mensaje de error que estoy recibiendo es la siguiente :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 Alguien me puede ayudar ¿cómo puedo lograr esto ?y lo que me estoy perdiendo aquí ?Amablemente ayuda.

¿Fue útil?

Solución

Para lo que usted está tratando de lograr, no es necesario utilizar el Modelo de Objetos de Cliente.A partir de su código anterior, se utiliza el Modelo de Objetos de Cliente sólo para ir a buscar la raíz de la url del sitio.Pero esto ya está presente en la página de SharePoint en forma de una variable de javascript.Ver: http://blog.tedpattison.net/Lists/Posts/Post.aspx?ID=9

También, me di cuenta de que usted está usando la executeOrDelayUntilScriptLoaded la función.Esta función se ejecute su OpenNewFormUrls1 la función en cada carga de página.No sólo cuando se hace clic en la etiqueta de anclaje.Para su requisito actual, no creo que usted necesita esta función como usted realmente no necesita el uso de la JS Modelo de Objetos de Cliente.

Así que teniendo en cuenta todas las cosas, su bloque de secuencia de comandos debe ser como este:

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

y, a continuación, llamar a la OpenNewFormUrls1 función en el onclick de su etiqueta de anclaje.

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
scroll top