小規模Webサイト向け CMS 「すぐ使えるCGI」のサポート情報

JavaScript: iframe への直接アクセスを回避する

最終更新日: 2013-05-27

「すぐ使えるCGI」の短い一覧(新着リスト)をトップページに <iframe> (アイフレーム、インラインフレーム)で表示した場合、サイト外部から <iframe> 内のページに直接アクセスされてしまう可能性があります。

<iframe> 内のページに直接アクセスされたときに、トップページに自動的にジャンプする JavaScript と設定方法のご紹介です。

1. template/article/short_list.html の編集

template/article/short_list.html をテキストエディタで開いて、下記の通り2か所を編集します。

i. <head> タグ内に JavaScript 関数を設定

下記のスクリプトコードを <head> と </head> の間に追加して下さい。
ジャンプさせたいトップページが異なる場合、URLを変更して下さい。

<script type="text/javascript"><!--
function open_in_child(n){
		if (n == 0 && top.location.href == self.location.href){
			//トップページのURLに変更
			top.location.href='/index.html';
		}
		n++;
}
// --></script>


ii. <body> タグにスクリプトの実行を設定

<body> タグに追加した JavaScript 関数の実行を設定して下さい。
「onLoad="open_in_child(0)"」を、bodyタグの < と > の中に指定します。

変更前例

<body bgcolor="#ffffff">


変更後例

<body bgcolor="#ffffff" onLoad="open_in_child(0)">


参考:変更後の template/article/short_list.html(例)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>記事一覧</title>
<script type="text/javascript"><!--
function open_in_child(n){
		if (n == 0 && top.location.href == self.location.href){
			//トップページのURLに変更
			top.location.href='/index.html';
		}
		n++;
}
// --></script>
</head>
<body bgcolor="#ffffff" onLoad="open_in_child(0)">

<!-- article list : generate from short_list.txt -->
%_article_list_%

</body>
</html>


2. アップロード

変更したテンプレートをサーバの同じ位置に上書きアップロードして下さい。

3. 編集操作

管理画面から1回編集操作を行って下さい。
編集操作により、最新のテンプレートを反映したファイルが書き出されます。

管理画面からのチェック用のリンクを開いたときも、トップページにジャンプするようになります。

留意点

期待通り動作しないブラウザもあります。

さらに詳しく