2011-10-14 11 views
5

Ja próbuje utworzyć modalnego okna dialogowego w SharePoint 2010, ale ja dostaję ten błąd:

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

mój kod to:

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

za pomocą firebug, próbowałem po prostu używając pola adresu URL zamiast pola html i nie dał błąd.

również związane z tym, co właściwie robi program SP.UI. $ create_DialogOptions()? Jaka jest różnica między używaniem go i po prostu używanie dyktatu wartości dla twoich opcji?

Odpowiedz

7

options.html wymaga elementu HTML DOM zamiast zwykłego kod:

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

Przykład kodu pochodzących z blogu 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

Jeśli spojrzeć na definicję „klasy” SP.UI.DialogOptions w pliku SP.UI.Dialog.debug.js widać, że jego pusty funkcji javascript.

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

Domyślam się, że jest tam dla celów diagnostycznych klienta. Spójrz na to pytanie: What does this Javascript code do?

+1

tak ... wymyśliłem to kilka godzin później i zamierzałem opublikować odpowiedź, ale miałem za mało rep :) Dziękuję jednak za odpowiedź do $ create_DialogOptions pytanie – Nacht