Contribute CS3がGoogle AnalyticsのJSを壊すエラー

最近Contribute 8→CS3にバージョンアップしたクライアントからの指摘で発覚。
この問題はContribute CS3 + Google Analyticsで運用してる人達に関わってきます。

IEのスクリプトエラー( '_gat'が宣言されていません。 )
IEのスクリプトエラー(


ContributeでGoogle Analyticsのトラッキングコードが壊れる|毎日興味津々|ITの話題が中心の日記」さんのエントリーで無事に対象方法もわかりました。感謝!

この記事の目次

現象)

  • Contribute CS3 で編集したページで、以下のようなInternet Exploerスクリプトエラーが表示される。

エラー: '_gat'は宣言されていません。

原因)

Google Analyticsのアクセス解析用JavaScriptのコードで “<>”のユニコード部分が変換されてしまい、その結果JavaScriptの文法が崩れてエラーが起こる。

編集前
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));


編集後(ページの公開後)
document.write(unescape("<script src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'></script>"));

このJSのユニコード部分が勝手に書き換えられてしまうのは、毎日興味津々さんのエントリーから、
Contribute CS3は<body>タグ内のJavaScriptに関しては、ユニコードした部分を勝手に書き直してしまうとんでもない仕様だとわかりました。

回避策)

  • bodyタグ内のGoogle Analyticsのアクセス解析用JavaScriptのコードをheadタグ内に移動する

これだけで大丈夫でした。

Contribute CS3 + Google Analyticsで運用してるサイトはお気をつけ下さい。
テンプレートで管理してれば一発で対応可能なはずです。
(僕のクライアントさんのサイトの場合、テンプレート書き換え&チェックインで数時間かかってしまいました…)

しかし、Adobeはもうちょいしっかりして欲しい。
bodyタグにJSのユニコード書くケースもあるんだから。
CS4を出すのはいいが、この問題をfixしたCS3へのアップデートぐらいは出してもらわないと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*