Hook IIFE(自我调用)javascript函数

时间:2016-08-17 15:58:52

标签: php wordpress asynchronous hook script-tag

我想挂钩IIFE功能:

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

我在一般意义上问这个,虽然具体原因是WordPress插件经常将内联脚本直接放入正文输出中。如果你想因SEO原因推迟(异步)加载依赖项,它自然会失败。

为了解决插件提供程序中无休止的糟糕编码实践,以及根本不考虑异步加载而设计的插件,我想做这样的事情。

我试图避免:

  1. 直接修改供应商代码。
  2. 使用PHP解析原始内容。
  3. 阻止加载JavaScript资源的现有服务器端系统,以便以后适当加载它们。
  4. 我想知道浏览器dom中是否有一些极低级别的原型可以用来截取那种性质的功能?

1 个答案:

答案 0 :(得分:0)

所以我最终做了我想避免的事情。它有点脏,但效果很好。我会分享,但NDA。如果可能的话,我会尝试将其作为拉取请求提交给其中一个较大的SEO /缓存插件(可能是Better Wordpress缩小版)。

它会扫描输出缓冲区中的问题脚本和样式,并将其调整为符合Google SEO(非阻塞)。我想这对于gen-pop来说永远不会有用,因为这个世界中编码不好的数量是无穷无尽的,而且我认为在处理所有用例时,正则表达式会变得非常臃肿。

它依赖于loadCSS和某种形式的本机DocumentContentLoaded在头部内联定义,首先强制推迟所有源脚本,清理设计为在其自己的脚本标签中执行的javascript,并移动正文脚本成为一个单独的函数,可以在时机成熟时调用。 全部都是正则表达式。

以下是有兴趣做类似事情的人的一些指示:

大声聆听此处提供的所有评论和帮助,在没有先与您说话的情况下,我们甚至都没有尝试过。感谢指点和建议,下次见!