社員ブログ
HOME  社員ブログ

アーカイブ

‘HTML’ カテゴリ

ひとつ前のページに戻るhistory.backを使う。

2012年08月13日 11時07分25秒

こんにちは、コブラです。

 

ブラウザバックの機能を使いたい場合はJavascriptを使って、

こんな風に書きますよね。

 

<a href="#" onclick="history.back()">戻る</a>

でも、これではブラウザによって効かないことも・・・

というわけで!

そんな時はこう書き換えてみてください。

 <a href="javascript:void(0)" onclick="javascript:history.back()">戻る</a>

 

これなら、どのブラウザでも使えるはずです!

HTML, JavaScript, 社員:cobra

IE 別ドメインのiframe内のページでCookieが操作できない時の更なる!対処法。

2012年07月16日 17時15分16秒

こんにちは、コブラです。

 

先日、「IE iframeを用いてクロスドメインするとcookieが動かない?」という記事を書きましたが、

これでもダメなパターンがあると判明!

というわけで、今日のネタは、検索しても情報が少ないし、

そもそもIEのシェアもあれだしってことで、

かなり貴重でお役に立つこと間違いなし!?

 

ことIEに関しては、

別ドメインのページをiframe内を使うと、

iframe内のページでCookieを操作することができなくなります。

セキュリティ関係でIEがCookie操作を不可能にしてるからなんですが…。

 

通常は、IEの「インターネットオプション」から、

「プライバシー」タブ > 「サイト」 で対象のドメインを許可させないといけないのですが、

ユーザにそんなことさせられませんよねぇ。

 

で、プログラムからこれを許可する方法があります。

『P3P』という仕組み?なんですが、

説明はこちらの方の詳しい記事にて!→[MEMO]P3Pについて – 雑記帳

 

で、「iframe p3p」とかで検索すると、

PHPなら「header(“P3P: CP=’UNI CUR OUR’”);」でOKです!と書いてる人が多く、

私もそう書きました!

 

が!

これではダメなことも!

あ、ちなみにこれは、「<!DOCTYPE HTML PUBLIC~」の前に書きます。

 

仕方ないので、プライバシーポリシーの宣言ファイル(XML)も作ってみたのですが、

それでもダメ。

一応、公式?の

P3Pポリシー作成」(XML自動生成)

P3P Validator」(P3pのXML構文チェック)

もやってみました。

 

で、どうにもならなかったのですが、

httpd.confというApacheの設定ファイルに以下を加えたら、

とりあえずIE8,9で動くようになりました。

 

## for Privacy Policy of cookie
 <IfModule mod_headers.c>
 Header set P3P "CP=\"UNI CUR OUR\""
 </IfModule>

 

設定後はApacheの再起動が必要です。

もし、header関数で動かない方は試してみてください。

一応、XMLの読み込み部分も残しておきました:P

HTML, 社員:cobra

IE iframeを用いてクロスドメインするとcookieが動かない?

2012年07月11日 12時59分16秒

こんにちは、コブラです。

 

タイトルの通り、IEでiframeを使って別のドメインのページを読み込むと、

その中でCookieが思うように使えませんでした。

 

こんな感じ。

 

Parent.html

└ (iframe src=)Child.html → Cookieの読み書き →NG!!

 

Cookieの指定が間違ってる?親フレームのCookie見てる?

でもIE以外は動作してるよ?

???・・・(°Д°;)・・・???

という感じでしたが、

調べたらすぐに原因が分かりました。

 

IEは、セキュリティの観点からクロスドメインによるCookie操作を拒否してたんですね!(このヤロウ!)

 

で、それを許可するには、

ざっくり言うとCookieを使う前にコンテンツポリシーのような宣言をします!

 

PHPの場合は

<?php header("P3P: CP='UNI CUR OUR'"); ?>

とヘッダーで書くだけ。

簡単でした。

これで

Parent.html

└ (iframe src=)Child.html → Cookieの読み書き →OK♪

となりました。

 

 

参考にさせてもらったサイトさん

P3Pコンパクトポリシーをコピペするのが流行らないことを祈る

IEでクロスドメインのiframe内のcookieが取れない

HTML, JavaScript, jQuery, PHP, 社員:cobra