我在我的页面上使用了AjaxControlToolkit.HTMLEditor,但根据某些变量,编译器的Visible控件可以在代码隐藏中设置为false。我在Javascript中引用了HTMLEditor,如此
var email = $get('<%=TemplateEditor.ClientID%>').control;
但我需要一种方法来判断控件是否已加载到页面上。如果不是,我不想调用上面的代码,因为它会出错。如果控件加载到页面上,有人可以告诉我如何在Javascript中测试吗?
答案 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.
}