Ошибка типа: this. $ E_0.getElementsByTagName не является функцией - PullRequest
6 голосов
/ 14 октября 2011

Я пытаюсь создать модальный диалог в sharepoint 2010, но я получаю эту ошибку:

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

мой код:

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

с использованием firebug, я пыталсяпростое использование поля url вместо поля html, и оно не выдает ошибку.

также связано с этим, что на самом деле делает SP.UI. $ create_DialogOptions ()?В чем разница между его использованием и простым использованием набора значений для ваших параметров?

1 Ответ

8 голосов
/ 14 октября 2011

options.html требуется элемент HTML DOM вместо простого кода HTML:

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

Пример кода взят из сообщения в блоге Для рендеринга HTML в диалоге SharePoint требуется элемент DOM, а не строка.

также связано с этим, что на самом деле делает SP.UI. $ create_DialogOptions ()?В чем разница между его использованием и простым использованием набора значений для ваших параметров

Когда вы смотрите на определение SP.UI.DialogOptions "class" в файле SP.UI.Dialog.debug.js вы видите, что это пустая функция javascript.

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

Я предполагаю, что она существует для диагностики клиента.Взгляните на этот вопрос: Что делает этот код Javascript?

...