カテゴリー:
HTML5
閲覧数:450 配信日:2015-06-18 19:12
iframeへ変数を渡す
当初の案
1トップページ内にて変数定義
2.iframeで読み込むページへ変数を渡す
3.変数が定義されていなければ、リダイレクト
変数を渡せない
・実際にやってみた結果、そんなに簡単にiframeページへは変数を渡せないことが判明
iframeで同一オリジン
同一オリジン指定すればiframeページへ変数を渡せるかも
実際にやってみた
・複数のキーワードを指定したい場合は、半角スペースで区切って記述
<iframe src="example.html" sandbox="allow-same-origin allow-scripts"></iframe>
→ 試したけれども期待した効果を得られなかった
最終的に
下記ページを参考に実装
・iframeからのアクセスか、ブラウザでの直アクセスか判別したいです。
▼iframe経由で読み込んでいるページ
<?php
$via = $_SERVER["HTTP_REFERER"];
$domain = "http://".$_SERVER['SERVER_NAME']."/";
if($via==$domain){
}else{
header('location: /');
exit();
}
?>
一致しない条件分岐だけが必要なので
<?php
$via = $_SERVER["HTTP_REFERER"];
$domain = "http://".$_SERVER['SERVER_NAME']."/";
if($via!=$domain){
header('location: /');
exit();
}
?>
JSだけで実装
今回は試していないけれど、下記でもイケるみたい
▼iframeで読み込まれるページ
<script type>
if(window!=parent){
document.write('インラインフレームで読み込まれています');
}
else if (window==parent){
document.write('インラインフレームで読み込まれていないです');
}
</script>