CloudFlare 會自動修改JavaScript導致功能異常

目前使用CloudFlare運作的Wordpress運作上大致都是正常的,可能是因為我有裝CloudFlare for WordPress外掛的關係。

最近在改一個網站,裡面有用到javascript,結果運作一整個不正常。

原本的程式碼如下

<script type=”text/javascript”>
alert(“驗證碼輸入錯誤”);
</script>

去看原始碼之後,就是javascript就是很簡單的提示窗而以
結果跑出來的是空白視窗,整個跳窗警告的訊息都沒有出來。再解析原始碼出來看。

<script type=”text/rockscript”>
alert(“驗證碼輸入錯誤”);
</script>

反回的結果就變成空白視窗了,原本javascript變成了rockscript。原因是,CloudFlare為了優化網頁的內容,自動修改了程式碼,怎麼設定都調不回來,原本以為是安全性的問題,調低安全性也沒有用,東調西調都沒有用。最後,我把CloudFlare CDN快取加速的功能By-pass掉,結果還是一點效也沒有。其實要處理,也不難,只要改程式碼就好,

在網路查了一下,真的有WordPress外掛的作者在討論這個問題,他為了讓他的外掛能在CloudFlare的環境下使用,他修改了程式碼。

在javascript中,新增一個字串(CloudFlare專用的屬性),就可以解決了。修改的程式碼如下。

<script data-cfasync=”false” type=”text/javascript”>
alert(“驗證碼輸入錯誤”);
</script>

整個流程就正常了,其實CloudFlare這個功能就在處理壓縮和改善Javascript,但是會造成一些意外的發生,最後害我好想把CloudFlare拿掉。

因為目前Amazon的CDN,只有免費1年,而且還不知道他針對的流量計算是Domain還是Subdomain,這個也再找時間試試好了,用了CloudFlare這麼久,還不算完全掌握他的特性。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *