0

我在我的页面上使用 AjaxControlToolkit.HTMLEditor,但根据某些变量,编辑器的 Visible 控件可以在代码隐藏中设置为 false。我正在像这样在 Javascript 中获得对 HTMLEditor 的引用

var email = $get('<%=TemplateEditor.ClientID%>').control;

但我需要一种方法来判断控件是否加载到页面上。如果不是,我不想调用上面的代码,因为它会出错。如果控件已加载到页面上,谁能告诉我如何在 Javascript 中进行测试?

4

2 回答 2

1

这是一个坏把戏,但我认为工作..

将一个<asp:HiddenField>放入页面中,然后在更改 TemplateEditor 的 Visible 属性的代码中将 Value 属性设置为“True”或“False”。

之后,简单地说:

var isVisible = $get('<%=HiddenField.ClientID%>').value;
var email;

if (hiddenFieldValue == "True")
    email = $get('<%=TemplateEditor.ClientID%>').control;

希望这有帮助!

于 2013-03-07T22:29:51.093 回答
1

您应该能够检查Sys.Extended.UI.HTMLEditor页面上是否存在。如果编辑器不可见,我认为不会加载脚本。

if(typeof Sys.Extended.UI.HTMLEditor !== "undefined") {
     // editor exists on page
}

编辑

如果无法通过您提供的 ID 找到控件,则修补 javascript 控制台$get()似乎返回 null 。$get()也许尝试:

var editor = $get('<%=TemplateEditor.ClientID%>');
if(editor !== null) {
    var email = editor.control;
    // you'll probably want to do more processing here.
}
于 2013-03-07T22:30:52.873 回答