當我用defunkt/jquery-pjax載入Yii2的ActiveForm時發生一個錯誤,正常情況下是
ActiveForm的兩個js應該先載入,而實際情況是
typeError:JQuery(...).yiiActiveForm is not a function。
在github的issues對這個問題已經討論並得到了解決。
Pjax首先通過html()執行內聯的<script>,然後才通過executeScriptTags()執行帶著src的<script>,所以導致找不到yiiActiveForm。Pjax作者拒絕使用JQuery.getScript()解決這個問題,因為安全原因函數使用eval不符合CSP (Content Security Policy)
Yii2的一個參與者重寫了Pjax,使Pjax可以在Yii2良好的工作hiqdev/jquery-pjax
親測沒問題。