每次第一次加载页面时,它都能正常工作。然而,当我们做回发时,编辑器消失了,只有文本区域消失了。回发是由于页面上的下拉列表造成的。
<asp:TextBox runat="server" ID="TBClosingInstructions" TextMode="MultiLine" Rows="8" Columns="40" TabIndex="2" Font-Name="Verdana"></asp:TextBox><script language="JavaScript">generate_wysiwyg('TBClosingInstructions');</script>我希望编辑器即使在回发后也能留下来。我已经尝试了以下代码
if (Page.IsPostBack)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "script", "<script language=\"JavaScript\">generate_wysiwyg('TBClosingInstructions');</script>", true);
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ClientScript", "<script language=\"JavaScript\">generate_wysiwyg('TBClosingInstructions');</script>", true);
}分别尝试了registerStartupScript和registerClientScriptBlock在每个回发中绑定javascript函数。但这不管用。
还有别的选择吗?请提个建议。
发布于 2011-08-24 11:30:56
有几种方法可以将编辑器附加到文本区域。
WYSIWYG.attach('all',我的设置);
这就是我正在使用的,如果你的内容/表单不是动态加载的,它工作得很好。
查看它附加到load事件的源代码。这可能就是它没有被附加的原因。
WYSIWYG_Core.addEvent(window, "load", function generateEditor() { WYSIWYG._generate(id, settings); });WYSIWYG.attachAll(mySettings);
我发现这个可以工作(所有的文本区域),再次查看源代码,它查找DOM中的每个文本区域,并且没有附加到事件。
var areas = document.getElementsByTagName("textarea");
for (var i = 0; i < areas.length; i++) {
var id = areas[i].getAttribute("id");
if (id == null || id == "") continue;
this.setSettings(id, settings);
WYSIWYG_Core.includeCSS(this.config[id].CSSFile);
WYSIWYG._generate(id, settings);
}https://stackoverflow.com/questions/4122887
复制相似问题