繁体   English   中英

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

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

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

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

SCRIPT5009:'IsPostBack'未定义。

我在网上找不到任何帮助。 有任何想法吗? 谢谢

你可以创建一个这样的函数:

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

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 -->

您可能想尝试下面的内容。 使用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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM