如何在每次回发到asp.net页面时触发js而不是第一次?

如何在每次回发到asp.net页面时触发js而不是第一次?,asp.net,postback,browser-cache,Asp.net,Postback,Browser Cache,我有一个js函数,将自动执行页面初始化。当第一次打开页面时,这个js将被调用并完美执行,但是当我回发(单击asp.net页面上的链接)页面时,它将不会被调用,并且函数将被破坏 这是Default.aspx中的我的js函数: <script type="text/javascript"> function HightLightKeywords() { var container = document.getElementById("result"

我有一个js函数,将自动执行页面初始化。当第一次打开页面时,这个js将被调用并完美执行,但是当我回发(单击asp.net页面上的链接)页面时,它将不会被调用,并且函数将被破坏

这是Default.aspx中的我的js函数:

<script type="text/javascript">
        function HightLightKeywords() {
            var container = document.getElementById("result");
            var keywords = new Array();
            <%  
                // This is C# code runs in server side.
                for (int i = 0; i < keywords.Count; i++)
                {
                    Response.Write(string.Format("keywords['{0}'] = '{1}';", i, keywords[i]));
                }
            %>
            for (var i = 0; i < keywords.length; i++)
            {
                var a = new RegExp(keywords[i], "igm");
                container.innerHTML = container.innerHTML.replace(a, "<span style='background:#FF0;'>" + keywords[i] + "</span>");
            }
        }
        HightLightKeywords();
    </script>

函数HightLightKeywords(){
var container=document.getElementById(“结果”);
var关键字=新数组();
对于(var i=0;i
它只在第一次进入Default.aspx时执行一次,在我单击页面上的按钮(回发)后不会触发两次

这与客户端缓存有关吗?是否有一种方法(通过设置一些属性?)防止回发时客户端缓存


感谢

请注意,
块中的代码仅在整页重新加载时执行。您需要做什么?使用
ScriptManager
控件在每次部分回发时更新
keywords
数组并重新调用
hhighlightkeywords
函数。检查以下代码:

 <script type="text/javascript">
      function hHightLightKeywords() {
           var container = document.getElementById("result");
           for (var i = 0; i < keywords.length; i++) {
                var a = new RegExp(keywords[i], "igm");
                container.innerHTML = container.innerHTML.replace(a, "<span style='background:#FF0;'>" + keywords[i] + "</span>");
           }
      }
 </script>

 <asp:UpdatePanel runat="server">
      <ContentTemplate>
           <asp:TextBox runat="server" ID="KeywordsTextBox" Text="cras turpis et" />
           <asp:Button runat="server" Text="Click Me" />
      </ContentTemplate>
 </asp:UpdatePanel>
 <p id="result">
      Et ac tincidunt nisi pid vel? Nunc turpis risus duis porta cursus cum augue, nisi,
      scelerisque turpis aliquam. Scelerisque tristique pid, elementum augue sociis augue
      cras mauris lundium nisi rhoncus diam cras parturient nec, velit odio, et turpis
      risus porttitor aliquam facilisis, ut duis augue porta magnis velit velit, augue
      vut sed facilisis dignissim, arcu, cras! Ultrices adipiscing? Est eros ac augue
      turpis integer mus massa! Est nisi auctor sagittis augue sit? Tortor tristique elementum,
      adipiscing. Nec platea ac natoque facilisis, porta tincidunt magna lorem augue tincidunt
      turpis, scelerisque adipiscing elementum scelerisque. Risus'vel ac augue lorem odio!
      Cursus ultrices et elementum egestas dapibus proin arcu velit augue?
 </p>

函数hhighlightkeywords(){
var container=document.getElementById(“结果”);
对于(var i=0;i
你能告诉我尼西的pid等级吗?Nunc turpis risus duis porta cursus cum augue,nisi,
权杖图尔皮斯阿利夸姆。社会奥古斯要素
在分娩前、分娩后和分娩后的第二天
这是一个便利的入口,也是一个巨大的入口
vut sed facilisis Dignessim,arcu,CRA!奥特莱斯酒店?爱神之爱
turpis integer mus massa!这是拍卖人sagittis augue sit吗?元素托托三体,
再见。Nec自然设施平台,大球场和奥古斯都球场
turpis,节杖,节杖,节杖元素。奥古斯·奥雷姆·奥迪奥!
在奥古斯都大教堂里,乌尔特里斯和埃吉斯塔的元素是什么?

代码隐藏:

protected IEnumerable<string> Keywords
{
    get
    {
        return KeywordsTextBox.Text.Split(' ').Where(kw => !string.IsNullOrEmpty(kw)).Select(kw => "'" + kw.Trim().Replace("'", @"\'") + "'");
    }
}

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterArrayDeclaration(this, "keywords", string.Join(",", Keywords));
    ScriptManager.RegisterStartupScript(this, this.GetType(), "hHightLightKeywords", "hHightLightKeywords()", true);
}
受保护的IEnumerable关键字
{
得到
{
return关键字textbox.Text.Split(“”).Where(kw=>!string.IsNullOrEmpty(kw)).Select(kw=>“”+kw.Trim().Replace(“”,@“\”)+“”);
}
}
受保护的无效页面\u预呈现(对象发送方,事件参数e)
{
RegisterArrayDeclaration(这是“关键字”,string.Join(“,”,关键字));
ScriptManager.RegisterStartupScript(this,this.GetType(),“hHightLightKeywords”,“hHightLightKeywords()”,true);
}

@Darin Dimitrov我刚刚添加了一些js函数,希望它能更好地理解:)你的意思是说你希望从某个UpdatePanel异步回发后,
关键字
数组应该更新吗?@Yuriy Rozhovetskiy是的,但下次回发时无论是同步还是异步都不会再触发它