javascript - JS 不与 asp.net 更新面板一起运行

标签 javascript asp.net updatepanel

以下代码可以在没有更新面板的情况下运行,但在有更新面板时不会运行。其目的是清除浏览器后退或前进时页面条目上的 bfcache。有人知道当用户点击后退/前进并且页面有更新面板时如何让js运行吗?

window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };

带有更新面板的完整页面:

<body>
<form id="form1" runat="server">
    <ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
     <asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <script type="text/javascript">
                var js = "window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };";

                Sys.Application.add_load(js);

                var prm = Sys.WebForms.PageRequestManager.getInstance();

                prm.add_endRequest(js);
                prm.add_beginRequest(js);
            </script>

            <a href='Default.aspx'>Default</a>
            <a href='Default2.aspx'>Default2</a>
            <a href='Default3.aspx'>Default3</a>
            <a href='Default4.aspx'>Default4</a>
            <br />
            <div>
                <asp:TextBox ID="tbText" runat="server"></asp:TextBox>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

尝试#2

<body>
<script type="text/javascript">
    window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };
    </script>
<form id="form1" runat="server">
    <ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
     <asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <a href='Default.aspx'>Default</a>
            <a href='Default2.aspx'>Default2</a>
            <a href='Default3.aspx'>Default3</a>
            <a href='Default4.aspx'>Default4</a>
            <br />
            <div>
                <asp:TextBox ID="tbText" runat="server"></asp:TextBox>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

尝试#3

<body>
<form id="form1" runat="server">
    <ajaxToolkit:ToolkitScriptManager runat="server" ID="ToolkitScriptManager" />
     <asp:UpdatePanel ID="updatePanel1" UpdateMode="Conditional" runat="server">
        <ContentTemplate>
            <script type="text/javascript">
                var js = window.onpageshow = function (event) { if (event.persisted) { window.location.reload() } };;

                Sys.Application.add_load(js);

                var prm = Sys.WebForms.PageRequestManager.getInstance();

                prm.add_endRequest(js);
                prm.add_beginRequest(js);
            </script>

            <a href='Default.aspx'>Default</a>
            <a href='Default2.aspx'>Default2</a>
            <a href='Default3.aspx'>Default3</a>
            <a href='Default4.aspx'>Default4</a>
            <br />
            <div>
                <asp:TextBox ID="tbText" runat="server"></asp:TextBox>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

最佳答案

您的错误是您已将字符串设置为必须运行的代码部分。从此行中删除 ":

var js = 
 window.onpageshow = 
    function (event) { if (event.persisted) { window.location.reload() } };

还有一点,您可以从更新面板中删除那部分剥离并将其放在前面。

关于javascript - JS 不与 asp.net 更新面板一起运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16743101/

相关文章:

c# - 由 ASP.NET Web 应用程序设置的 Cookie 有多安全?

javascript - 刷新 UpdatePanel 时未加载 Google 交互式图表

c# - 无法在 asp :formview inside an asp:UpdatePanel? 中上传文件

javascript - 如何将选定的对象属性名称输出到angularJs中的段落

ASP.NET 将 HTML 添加到 Gridview header 文本

javascript - Paypal 在上下文结帐 : amount not showing

c# - HostingEnvironment.QueueBackgroundWorkItem 和 HostingEnvironment.RegisterObject 之间的区别

c# - UpdatePanel内的Gridview删除记录,更新错误的行

javascript - TypeScript - 如何使用数组映射到 ES 6 映射?

javascript - 如何在 Node.js Express 中使用全局变量(可共享变量)