仅在页面加载时执行 Javascript,而不在 PostBack (SharePoint) 时执行

Execute Javascript only on page load, not PostBack (SharePoint)

本文关键字:执行 PostBack SharePoint Javascript 加载      更新时间:2023-09-26

我正在尝试在SharePoint网站上的自定义页面上加载页面时执行一些JavaScript(它用当前用户填充人员选择器)。问题是代码也在回发时执行,我不想要,因为它会重置对人员选择器的任何更改。

我试过使用if(!IsPostBack)但无济于事。一切都在这一点上出错了,给了

SCRIPT5009:"IsPostBack"未定义。

我在网上找不到任何可以帮助解决这个问题的东西。有什么想法吗?谢谢

您可以创建如下函数:

function IsPostBack() {
    var ret = '<%= Page.IsPostBack%>' == 'True';
    return ret;
}

您可能想尝试以下操作。使用 JavaScript pageLoad 方法并使用 PageRequestManager 对象的 isInAsyncPostBack 属性来确定它是否为回发。有关更多详细信息,请参阅此处的 MSDN 链接。

<script type="text/javascript" language="javascript">
  function pageLoad(sender, args) {
    if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
     // call you JavaScript function in here
    }
  }
</script>

>IsPostBack不是javascript变量,它是一个.NET webforms变量,仅在服务器上可用,因此客户端会抱怨它。那怎么办呢?我建议在控件的 html 中进行这种大杂烩:

<% if(IsPostBack) { %> <!-- runs on server -->
<script type="text/javascript">
 alert('will only be printed to html if not postback');
</script>
<% } %> <!-- ends server if-block -->