前台代码
<div class="panel-heading"> <asp:ImageButton ID="imgCollect" runat="server" Height="30" Width="30" OnClick="imgCollect_Click" /> </div>
后台正常调用的代码
protected void imgCollect_Click(object sender, ImageClickEventArgs e) { string message = ""; string toWrite = "<script>alert('" + message + "')</script>"; Response.Write(toWrite); }
现在我想调用前台的layer.js控件(该控件已经在head里面引入)
protected void imgCollect_Click(object sender, ImageClickEventArgs e) { string message = ""; string toWrite = "<script>layer.alert('" + message + "')</script>"; Response.Write(toWrite); }
结果页面什么也没显示,打开调试模式,出现以下信息
Uncaught ReferenceError: layer is not defined
是先输出 <script>layer.alert... , 再输出页面 <html> .... 的
哦,是这个原因吗。那要如何才能达成我的需求(后台调用前台控件)?
@军长_cnblogs: Page.RegisterClientScriptBlock("a", toWrite);
@Yu: 这段代码要写在哪里,另外,a代表什么
@军长_cnblogs: 替换 Response.Write , a 任意起名,不重复就可以
@Yu: 问题解决了,谢谢。
没有引入jquery
不是的,前台js调用这个控件都没有问题。
@军长_cnblogs:
还有两种可能性:
(1)就是你比如说模板页面引入了jquery和layer,后又再次引入了layer导致jquery被覆盖也会出现这种问题
(2)layer和其他脚本引入导致冲突,也是有可能导致这种问题出现的
@Recluse_Xpy:
针对你的回复:
(1)没有引入模板页面
(2)在页面写js可以正常调用这个layer控件,所以应该不是引入冲突。