9月 162015
 

状況に応じてフォームの送信先URL(formタグのaction属性値)のクエリーストリングを書き換えるという処理をするために、こんなJavaScriptを書いてみた。

function updateQuery(query)
{
  var form = document.forms[0]
    , action = document.createElement('a')
  ;

  // オリジナルの送信先URLからパス部分を切り出して、クエリーストリングだけを書き換える。
  action.href = form.getAttribute('action');
  form.setAttribute('action', action.pathname+'?'+query);
}

しかし、

  • フォームを表示しているページのURLがWebサイトのルート直下ではない
  • オリジナルのフォームの送信先URLが絶対パスで書かれている

という条件下では、フォームを送信した時にIEでだけ「404 Not Found」になってしまった。

Continue reading »