挂钩 IIFE(自调用)javascript 个函数

Hook IIFE (self-calling) javascript functions

我想挂钩 IIFE 函数:

(function(p) {
   // stuff
})();

我问的是一般意义上的问题,但具体原因是 WordPress 插件经常将内联脚本直接放入正文输出中。如果出于 SEO 的原因想要延迟(异步)加载依赖项,那自然会失败。

为了解决插件提供商无穷无尽的不良编码做法,以及根本没有考虑异步加载的插件,我想做这样的事情。

我正在努力避免:

  1. 直接修改供应商代码。
  2. 使用 PHP 解析原始内容。
  3. 阻止加载 JavaScript 资源的现有服务器端系统,以便稍后适当地加载它们。

我想知道浏览器中是否有一些极低级别的原型 dom 可用于拦截那种性质的函数?

所以我最终做了我想避免的事情。它有点脏,但效果很好。我会分享,但保密协议。如果可能的话,我会尝试将其作为拉取请求提交到较大的 SEO/Caching 插件之一(可能是 Better Wordpress minify)。

它扫描问题脚本和样式的输出缓冲区,并将它们调整为 Google SEO 兼容(非阻塞)。我想这对 gen-pop 永远行不通,因为这个世界上糟糕的编码数量是无穷无尽的,而且我认为当所有用例都被处理时,正则表达式会变得非常臃肿。

它依赖于 loadCSS 和某种形式的本机 DocumentContentLoaded 在头部内联定义,首先强制延迟所有源脚本,清理 javascript 设计为在它自己的脚本标签中执行,并将主体脚本移动到一个可以在适当的时候调用的函数中。 全部使用正则表达式。

这里有一些对有兴趣做类似事情的人的建议:

  • Wordpress filter to modify final html output
  • php regex: find inline javascript in HTML document

感谢此处提供的所有评论和帮助,如果不先与你们交谈,我什至不会尝试。感谢指点和建议,下次再见!