簡體   English   中英

Hook IIFE(自調用)JavaScript函數

[英]Hook IIFE (self-calling) javascript functions

我想鈎上IIFE功能:

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

我一般性地問這個問題,盡管具體原因是WordPress插件經常將內聯腳本直接放到主體輸出中。 如果出於SEO的原因要推遲(異步)加載依賴關系,它自然會失敗。

為了解決插件提供者的無休止的不良編碼實踐,以及那些並非為異步加載而設計的插件,我想做這樣的事情。

我試圖避免:

  1. 直接修改供應商代碼。
  2. 使用PHP解析原始內容。
  3. 阻止現有的服務器端系統加載JavaScript資源,以便以后適當地加載它們。

我想知道瀏覽器dom中是否有一些非常低級的原型可以用來攔截這種性質的功能?

所以我最終做了我想避免的事情。 它有點臟,但是效果很好。 我會分享,但是NDA。 如果可能的話,我將嘗試通過較大SEO / Caching插件之一(可能更好的Wordpress縮小版)中的請求請求提交。

它將在輸出緩沖區中掃描問題腳本和樣式,並將其調整為與Google SEO兼容(無阻塞)。 我想這對於gen-pop永遠是行不通的,因為這個世界上的不良編碼數量不勝枚舉,而且我認為正則表達式在處理所有用例時會變得would腫。

它依靠loadCSS和某種形式的本機DocumentContentLoaded在頭中內聯定義,首先要強制所有源腳本推遲執行,清理要在其自己的腳本標簽中執行的javascript,然后將主體腳本移至單個函數中在適當的時候可以調用它。 全部帶有正則表達式。

這是對有興趣進行類似操作的人的一些提示:

大聲疾呼這里提供的所有評論和幫助,甚至必須先與你們交談,再嘗試。 感謝您的指點和建議,下次見!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM