Я использую JSColor в качестве средства выбора цвета для моего сайта, у меня было несколько проблем с потерей экземпляра после обратной передачи из-за панели обновления, но я нашел решение для этого в другом вопросе:
private void RegisterClientStartupScript(string scriptKey, string scriptText)
{
ScriptManager sManager = ScriptManager.GetCurrent(this.Page);
if (sManager != null && sManager.IsInAsyncPostBack)
{
//if a MS AJAX request, use the Scriptmanager class
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), scriptKey, scriptText, true);
}
else
{
//if a standard postback, use the standard ClientScript method
scriptText = string.Concat("Sys.Application.add_load(function(){", scriptText, "});");
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), scriptKey, scriptText, true);
}
и использование его в page_load, как это, решило проблему:
RegisterClientStartupScript("some", "jscolor.init();");
Теперь я получил его для идеальной работы в Firefox, но в Chrome он даже не открывается, когда я нажимаю кнопку, вот как это настраивается вразметка:
<script type="text/javascript" src="jscolor/jscolor.js"></script>
в теле:
<asp:TextBox ID="txtButtonTextColorSample" runat="server" Width="30px"></asp:TextBox>
<asp:TextBox ID="txtButtonTextColor" runat="server" OnTextChanged="txtButtonTextColor_TextChanged"></asp:TextBox>
<input type="button" id="fontCPicker" value="Pick" class="color {valueElement:'txtButtonTextColor',styleElement:'txtButtonTextColorSample',hash:true,required:false}" />
<input type="button" onclick=" doPostBackAsync('<%= txtButtonTextColor.ClientID %>', 'OnTextChanged');" value="Apply" />
Должно отображаться, когда кнопка "fontCPicker", но ничего не происходит, я не вижу никаких ошибок в консоли Chrome, но я неконечно, если это действительно отладка или нет, потому что я не часто использую Chrome.