我已经创建了一个自定义丝带按钮,其中我加载外部内容到一个Modal对话框。我想在编辑器上插入一些文本并关闭对话框。当我单击对话框中的某个内容时,函数OnPopClosed正在运行,但我遇到了一个错误:没有定义RTE,所以我不能在编辑器上插入任何内容。有什么想法吗?
function init(){
var options = SP.UI.$create_DialogOptions();
options.title = "Sharepoint Plugin";
options.width = 600;
options.height = 400;
options.url = '/_Layouts/Test/Test.aspx';
options.dialogReturnValueCallback = OnPopClosed;
SP.UI.ModalDialog.showModalDialog(options);
}
function OnPopClosed(test) {
var range = RTE.Cursor.get_range();
range.deleteContent();
var selection = range.parentElement();
if (!selection) {
return;
}
range.insertNode(elem);
RTE.Cursor.get_range().moveToNode("test");
RTE.Cursor.update();
SP.UI.ModalDialog.commonModalDialogClose(1, "test");
}发布于 2013-09-04 17:14:40
将RTE操作放在SP.SOD.executeOrDelayUntilScriptLoaded中,以便在加载包含RTE操作的文件时执行指定的函数(在您的示例中是sp.ui.rte.js):
ExecuteOrDelayUntilScriptLoaded(RTEActions, "sp.ui.rte.js");示例:
function RTEActions()
{
var range = RTE.Cursor.get_range();
//Remaining code goes here...
SP.UI.ModalDialog.commonModalDialogClose(1, "test");
}然后像下面这样声明对话框处理程序:
function OnPopClosed() {
ExecuteOrDelayUntilScriptLoaded(RTEActions, "sp.ui.rte.js");
}https://stackoverflow.com/questions/18587997
复制相似问题