我有一个带有旋转木马的标准缩略图库来浏览缩略图。我有一组链接,点击后,将缩略图加载到轮播中。 在IE中,这非常棒且完美。在Chrome,FF和Safari中,部分回发没有被感知,并且js没有被重新加载到asyncpostback上,因为页面上的jquery都是损坏/不工作(即切换不起作用,单击事件不为隐藏事件触发等)
编辑:**在HTML方面,有2个更新面板,一个嵌套在另一个面板中。我添加了可能有用的HTML代码。我已经删除了大部分页面内容,只是离开了更新面板等,所以每个人都可以了解html方面的内容。
HTML
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="updtPnlRedCarpet" runat="server">
<ContentTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="redCarpetCarousel">
<div class="redCarpet">
<asp:PlaceHolder ID="PlaceHolder1" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
内幕代码 - 在PAGE_LOAD事件之后
if (ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack)
{
RegisterClientStartupScript();
}
注册客户端启动脚本代码
private void RegisterClientStartupScript()
{
string path = Page.ResolveUrl("~/Scripts/jquery.msCarousel-min.js");
ScriptManager sManager = ScriptManager.GetCurrent(this.Page);
if (sManager != null && sManager.IsInAsyncPostBack)
{
ScriptManager.RegisterClientScriptInclude(
this.updtPnlRedCarpet, typeof(string), "include-js",
path);
ScriptManager.RegisterStartupScript(this.updtPnlRedCarpet, this.updtPnlRedCarpet.GetType(), "SliderScript",
"runTheCarousel();", true);
ScriptManager.RegisterStartupScript(this.updtPnlRedCarpet, this.updtPnlRedCarpet.GetType(), "ClickScript",
"loadThePage();", true);
}
else
{
this.Page.ClientScript.RegisterClientScriptInclude("SliderScript", path);
}
}
答案 0 :(得分:0)
好的,所以似乎FF,Chrome和Safari在javascript函数之前不喜欢document.ready。一旦我删除了document.ready位,FF,Chrome和Safari就能找到这些功能,宇宙中的一切都再次变得安静。