有没有办法强制javascript函数先运行

有没有办法强制javascript函数先运行,javascript,Javascript,我在页面上有一个javascript函数,可以动态更改导航项目的链接。除了它是页面上的第一个javascript之外,还有什么方法可以保证它在任何其他javascript之前先运行吗 我这样问是因为这是一个重要的项目,而且将来可能会有其他东西在这个脚本之前中断,使其无法运行。如果函数在代码中位于前面,那么它将在其他函数之前执行,因为JS是单线程语言。问题可能是,在其他函数尝试获取DOM项之前,DOM操作还没有准备好。这是棘手的部分,很难计算和预测 我想到的最简单的解决方案是使用带有标志或承诺的s

我在页面上有一个javascript函数,可以动态更改导航项目的链接。除了它是页面上的第一个javascript之外,还有什么方法可以保证它在任何其他javascript之前先运行吗


我这样问是因为这是一个重要的项目,而且将来可能会有其他东西在这个脚本之前中断,使其无法运行。

如果函数在代码中位于前面,那么它将在其他函数之前执行,因为JS是单线程语言。问题可能是,在其他函数尝试获取DOM项之前,DOM操作还没有准备好。这是棘手的部分,很难计算和预测


我想到的最简单的解决方案是使用带有标志或承诺的setTimeout检查器,但在我看来,解决问题的方法应该是重新思考,根本不需要setTimeout。实际代码很难更精确。

您可以在此处运行它。。。当然,如果您有许多
document.ready
s,那么几乎不可能跟踪正在做什么…使用vanilla js,您可以使用window.onload而不是document来完成。ready@Exception_al我不能使用jquery。它必须在页面上实例化之前运行。javascript从上到下运行。如果您有某种形式的框架,您可以指定首先运行什么。最简单的方法是尽早放置js。@例外情况是可以预测的(谢天谢地),如果你不能确定事情发生的顺序总是因为糟糕的设计和用户错误,但我想确保这发生在任何其他JavaScript之前。我把它放在页脚的第一位,所以它应该在页面呈现之后出现。你是说在其他javascript代码上设置超时吗?我正试图控制未来的开发人员投入的内容。如果我想在加载页面之前进行DOM更改,我会在DOM更改函数之后为更改设置一个checker函数(具有较小的setInterval),这将允许加载其余代码。当然,您不能依赖DOM更改来继续加载JS,因为它可能因浏览器/设备而异。只有在更改准备就绪时使用标志进行检查才可能是可行的解决方案。您可以向用户显示加载屏幕,并在标志更改时将其淡出以改善用户体验。但我还是建议不要使用设置超时,并尝试重新考虑这种方法。但是,我也不担心在我更改页面之前页面上的内容。我担心有人可能会在页面上运行此操作之前将代码放在页面上,这样可能会出现错误并阻止此操作的运行。我仍然不明白设置超时的目的是什么。那么,我能预见的唯一一件事就是让你的函数不是第一个加载的,就是有人在加载之前放置代码。确保您的脚本文件或内联JS位于顶部。