如何在页面加载后可靠地运行jquery脚本

How can I reliably run a jquery script after page load

本文关键字:运行 jquery 脚本 加载      更新时间:2023-09-26

我正试图在加载sharepoint页面后运行一些jquery代码,代码为:

$(".ms-commentcollapse-icon").click();

我一直在使用以下方法在页面加载后加载代码,但它似乎不是很可靠(有时会工作,有时不会):

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script type="text/javascript">
$(window).load(function () {
        $(".ms-commentcollapse-icon").click();
});
</script>

还有其他好的方法可以实现这一点吗?我不确定发生了什么,sharepoint可能有错,但我想我会先试着多摆弄一下脚本。

您可以使用自动执行功能:

<script type="text/javascript">
  (function () {
    $(".ms-commentcollapse-icon").click();
  } ());
</script>

如果这是SharePoint 2010或更高版本,您可以使用ExecuteOrDelayUntilScriptLoaded(yourfunction,"SP.JS")来防止代码被激发,直到SP.JS库加载之后(或者您可以将任何其他库放在第二个参数中以获得类似效果)。

如果这是在web部件中,并且您不希望在页面上的其他web部件完全加载之前执行它,请确保包含脚本的web部件位于其他web部件下方。

作为最后的手段,您可以使用setTimeoutsetInterval延迟执行它,但这很难看。

您可以通过使用e.preventDefault()来防止默认行为;在函数内。

<script type="text/javascript">
    $(".ms-commentcollapse-icon").click(function(e) {
        // We're going to stop the default behavior
        e.preventDefault();
        //some code here
    });
</script>