我有一个js函数,它从后面的代码调用(在按钮单击事件上),它打开一个模态窗口。按钮单击事件或调用模态窗口的js函数没问题。但是如果我刷新页面,主要问题就出现了。每当我刷新页面时,都会调用js函数而不点击任何按钮并加载模态窗口。
如何在页面刷新时避免加载此模态窗口?
这是我的代码。
<head>
<script type="text/javascript">
function showModal() {
$('#viewOc').modal();
return false;
};
</script>
</head>
<body>
<asp:button class="btn btn-default" id="btnTextView" runat="server" Text="View as Text" commandArgument="1234" OnCommand="btnTextView_View"> </asp:button>
<div class="modal fade" id="viewOc" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
//some content here
</div>
</div>
</div>
</body>
protected void btnTextView_View(object sender, CommandEventArgs e)
{
//some processing here
if (!ClientScript.IsStartupScriptRegistered("JSScript"))
{
ClientScript.RegisterStartupScript(this.GetType(), "JSScript",
@"<script type='text/javascript'>showModal()</script>");
}
}
答案 0 :(得分:0)
如果您共享的代码隐藏中的函数导致JS运行,您可以按如下方式修改它:
protected void btnTextView_View(object sender, CommandEventArgs e)
{
//some processing here
if (!ClientScript.IsStartupScriptRegistered("JSScript") && !Page.IsPostBack)
{
ClientScript.RegisterStartupScript(this.GetType(), "JSScript",
@"<script type='text/javascript'>showModal()</script>");
}
}
编辑:
根据您的评论,我了解如果刷新页面,则会再次触发该按钮的事件。这是网页重新提交请求的已知问题,您应该查看此link来解决您的问题。这很冗长但是完成了工作!
答案 1 :(得分:0)
我不确定OnCommand是否是在此上下文中使用的正确事件。如果您希望通过单击触发事件,请使用click事件:
<asp:button class="btn btn-default" id="btnTextView" runat="server" Text="View as Text" commandArgument="1234" OnClick="btnTextView_View"> </asp:button>
这应该可以解决您在页面刷新时遇到的问题。