symfonyのJavascriptヘルパ+IEではまり

昨夜、とあるシステムのテストをしててIEAjax部分が動かないとのことで対応することになったのですが。

自分でも試してみたところ、あるパーシャルを読み込んでいる画面でのみ「オブジェクトでサポートされていないプロパティまたはメソッドです」とエラーが。

結論から言うと、symfonyのJavascriptHelperでremote_functionを使っている部分があり、そこの先頭でprototype.jsを自動でロードするように設定してあるのですが、自前でもprototype.jsを使っており、そこでバッティングしていたのが原因でした。

とりあえず暫定的にロードしないようにしたヘルパを作成して対応。

<?php
function remote_function_no_load_prototype($options)
{
  use_helper('Javascript');

  $script = remote_function($options);

  $js = sfConfig::get('sf_prototype_web_dir').'/js/prototype';
  $ns = 'helper/asset/auto/javascript';
  sfContext::getInstance()->getResponse()->getParameterHolder()->remove($js, $ns);

  return $script;
}