我正在尝试在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()实际上做了什么?使用它和简单地使用值的dict作为选项有什么区别?
答案 0 :(得分:8)
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>
示例代码取自博文Rendering html in a SharePoint Dialog requires a DOM element and not a String。
也与此相关,SP.UI. $ create_DialogOptions()实际上做了什么?使用它和简单地为你的选项使用值的字典是什么区别
当您查看文件 SP.UI.Dialog.debug.js 中SP.UI.DialogOptions
“类”的定义时,您会看到它是一个空的javascript函数。
SP.UI.DialogOptions = function() {}
SP.UI.$create_DialogOptions = function() {ULSTYE:;
return new SP.UI.DialogOptions();
}
我的猜测是,它是出于客户诊断的目的。看一下这个问题:What does this Javascript code do?