2011-10-14 6 views
5

Sto tentando di creare una finestra di dialogo modale in SharePoint 2010, ma sto ottenendo questo errore:

TypeError: this.$E_0.getElementsByTagName is not a function 

il mio codice è:

var options = SP.UI.$create_DialogOptions(); 
options.html = '<div class="ExternalClass23FFBC76391C4EA5A86FC05D3D9A1904"><p>RedConnect is now available.​</p></div>'; 
options.width = 700; 
options.height = 700; 
SP.UI.ModalDialog.showModalDialog(options); 

utilizzando firebug, ho provato semplicemente a utilizzare il campo url invece del campo html e non ha dato alcun errore.

correlate anche a questo, cosa fa effettivamente SP.UI. $ create_DialogOptions()? qual è la differenza tra l'utilizzo e semplicemente l'utilizzo di un valore di valori per le opzioni?

risposta

7

options.html richiede un elemento HTML DOM invece di codice HTML pianura:

<script> 

    function ShowDialog() 
    { 
    var htmlElement = document.createElement('p'); 

    var helloWorldNode = document.createTextNode('Hello world!'); 
    htmlElement.appendChild(helloWorldNode); 

    var options = { 
     html: htmlElement, 
     autoSize:true, 
     allowMaximize:true, 
     title: 'Test dialog', 
     showClose: true, 
    }; 

    var dialog = SP.UI.ModalDialog.showModalDialog(options); 
    } 

</script> 

<a href="javascript:ShowDialog()">Boo</a> 

codice di esempio preso dal post sul blog Rendering html in a SharePoint Dialog requires a DOM element and not a String.

also related to this, what does SP.UI.$create_DialogOptions() actually do? what is the difference between using it and simply using a dict of values for your options

Quando si guarda la definizione della "classe" SP.UI.DialogOptions nel file SP.UI.Dialog.debug.js si vede che la sua funzione javascript un vuoto.

SP.UI.DialogOptions = function() {} 
SP.UI.$create_DialogOptions = function() {ULSTYE:; 
    return new SP.UI.DialogOptions(); 
} 

La mia ipotesi è che sia lì per scopo diagnostico del cliente. Dai un'occhiata a questa domanda: What does this Javascript code do?

+1

sì ... l'ho capito un paio d'ore più tardi e stavo per pubblicare la risposta ma non avevo ancora abbastanza rep :) grazie per la risposta al $ create_DialogOptions domanda – Nacht

Problemi correlati