忍者ブログ

猿の日記

ボケ防止に日記を書くことにしました。 参考になる記事があれば幸いです。

   

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【jQuery】別タブを開いてPOSTする方法



画面内のボタン押下時に別タブを開いて、その開いたタブへPOST送信する方法を

jQueryを使って記述しました。

GETであればリンクのtarget属性に「_blank」を指定すれば簡単に実現できるのですが、

今回、「URLパラメータ見せたくない」という要望だったのでちょっと調べてみました。


さっそくコードから


<script type="text/javascript">

 $(function(){
    $('button[name="open"]').on('click', function() {
      window.open('', 'sample');
      var $postData = $('<input />', {
        type: 'hidden', 
        name: 'post_data', 
        value: '123'
      });
      var $form = $('<form />', {
        action: 'http://www.sample.com/test.php',
        target: 'sample',
        method: 'post'
      });
      $form.append($postData).submit();
    });
  });

</script>
<button name="open">open</button>


まずは、

window.open('', 'sample');

で別タブを開きます。

通常は第1引数にURLを指定するのですが、にしておくのがポイントです!

また、この別タブに名前を付けておきます。(今回は「sample」と付けました。)

(画面サイズを指定すると別windowで開きますが、画面サイズを指定しないと

別タブで開きます。)



次に、この「sample」と付けた別タブへPOSTします。

その方法は、以下のようにformの属性を指定します。



まず、actionには別タブで開くURLを指定します。

そして重要なのが、target属性

ここで、先ほど指定した別タブの名前「sample」を指定します。

こうすることで、submit先を別タブにすることができます。

method属性はもちろんpostです。



(今回は、form要素の作成、hidden項目の追加、formのsubmitを全てjQueryで行っています。

こうすれば無駄なformを作成する必要がないのでスマートに記述できます。)


ポイントは2点

ということでまとめです。

まずは、

URL指定なしで名前を付けた別タブを開く

そして、

formのtarget属性に①で付けた名前を指定しPOST

これで、新しく開いたタブへPOSTすることが可能になります。

拍手[10回]

PR

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

プロフィール

HN:
たちばなけいた
年齢:
31
性別:
男性
誕生日:
1993/05/23
趣味:
ふぃっしんぐーーー
Copyright ©  -- 猿の日記 --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]