【发布时间】:2016-12-24 09:19:51
【问题描述】:
我想挂钩 IIFE 函数:
(function(p) {
// stuff
})();
我在一般意义上问这个问题,尽管具体原因是 WordPress 插件经常将内联脚本直接放入正文输出中。如果你因为 SEO 的原因想要延迟(异步)加载依赖,它自然会失败。
为了解决插件提供者无休止的糟糕编码实践,以及在设计时根本没有考虑到异步加载的插件,我想做这样的事情。
我试图避免:
- 直接修改供应商代码。
- 使用 PHP 解析原始内容。
- 阻止加载 JavaScript 资源的现有服务器端系统,以便以后适当地加载它们。
我想知道浏览器 dom 中是否有一些极低级别的原型可以用来拦截这种性质的函数?
【问题讨论】:
-
仅供参考,这称为IIFE(立即调用的函数表达式)
-
谢谢!更新了标签和标题
-
不幸的是,答案是简单的“不”,浏览器中没有为此而设的低级挂钩。如果你有这种能力,你具体会做什么?如果您确切地指定了您正在尝试做的事情,它会更有效率,并且可能有更好的方法来解决这个问题。
-
如果您编写了一个修改插件删除的外部脚本标签的钩子,您将需要编写一个也修改内联脚本标签的钩子。
-
“修复那些在设计时根本没有考虑到异步加载的插件”——这将非常困难。他们可能会使用
document.write之类的。
标签: php wordpress asynchronous hook script-tag