如何判断页面上是否加载了AjaxControlToolkit.HTMLEditor

时间:2013-03-07 22:16:53

标签: javascript asp.net ajax asp.net-ajax

我在我的页面上使用了AjaxControlToolkit.HTMLEditor,但根据某些变量,编译器的Visible控件可以在代码隐藏中设置为false。我在Javascript中引用了HTMLEditor,如此

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

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

2 个答案:

答案 0 :(得分:1)

这是一个糟糕的伎俩,但我认为工作..

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

之后,简单地说:

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

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

希望这有帮助!

答案 1 :(得分:1)

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

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

编辑

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

var editor = $get('<%=TemplateEditor.ClientID%>');
if(editor !== null) {
    var email = editor.control;
    // you'll probably want to do more processing here.
}