人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP

Javascriptが有効でないブラウザがアクセスしてきた再、YahooMailのようにエラーが表示さてた別ページへ移す方法を教えてください。

プログラミング言語はPHPで。

●質問者: esecua
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript PHP アクセス エラー ブラウザ
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● llusall
●30ポイント

発想を変えて、有効なブラウザがアクセスしてきた場合に、

正常なページに飛ばすというのはどうでしょうか?

<html>

<body onload="window.location.href='有効なページ.php'">

JavaScriptが無効です。

</body>

</html>

サーバサイドで、ターゲットブラウザのJavaScriptの有効無効を

判断して振分(リダイレクト)できるかもしれませんが、

セキュリティ設定などで、実際のScript動作はわかりませんので、

「Scriptが機能すれば、正常なページへ」というふうに

持っていったらどうかと思います。

◎質問者からの返答

bodyは触りたくないですね。ほかの方法でお願いします。

できればサーバサイドで判断して、有効でなければ別ページにしたいのです。有効であればそのまま表示させたいのです。

提示していただいた方法だとJavaScriptを必要とするページに付いたときに無効にしてしまえば意味がないでしょ?そうではないんでよね。


2 ● kouuok
●0ポイント

(Javascriptで。)

(PHPで。)

//Javascriptが無効なら行くページへジャンプ

?>

と、並べて書くのはどうでしょうか。

◎質問者からの返答

えぇ?いやいや、その方法を聞いているのですよ。別に Locationの方法は聞いていませんけど。


3 ● technolize
●9ポイント

この場合は header() で Location か Refresh を吐いてやればいいと思うんですけど、どうでしょうか。


そのまま飛す

<?php header("Location: {$target_url}"); ?>


なんか表示してから飛す

<?php
// 判定...
// 飛すまでの時間
$wait = 10;
// 飛すURL
$target = "http://example.com/hoge";
header("Refresh: {$wai};URL={$target}");
?>

◎質問者からの返答

おねがいです。質問をみてください。

PHPのlocationの方法は聞いていません。Javascriptが無効をPHPで判断できるのか聞いているのです。


4 ● ymty
●30ポイント

PHPではなくjavascriptで実現できると思います。

Yahooでは

<script type="text/javascript"></p> <p><!-- </p> <p>if(typeof top.frames["wmailmain"] != "undefined") window.open("<a href="http://mail.yahoo.co.jp" target="_blank">http://mail.yahoo.co.jp</a>", "_top");</p> <p>// --></p> <p></script>

<noscript>

<META HTTP-EQUIV=Refresh CONTENT="0; URL=/ym/login?nojs=1">

</noscript>

で、実現させています。

typeofは

http://www.res-system.com/item/505

によると

あるJavaScipt関数が有効か否かを判断するのに使用され

typeof(aaaaa)に対してundefinedを返します。

上のYahooのコードは

typeofで文字列を返すことが出来れば、メールへ

返すことが出来なければ、ヘッダーでリフレッシュをかけ別ページに飛ばしています。

もし、PHPにこだわらないのであれば、上述のコードを一部変更することで、すぐに実装できるかと思います。

◎質問者からの返答

なるほど。参考になります。

ところで Gmail http://mail.google.com/mail/ はどのようにして判断していると思いますか?


5 ● ymty
●31ポイント

連続ですみません。

Gmailでどう判定しているかなのですが、予想で申し訳ないのだが

function wfs()でcookieのチャックとブラウザのチェックは

間違いなく行っているのですがJavascriptがいまいち見当たらないのです。

Javascriptが動かないとif (wfs())が反応しないてので判定しているか、<noscript>だけで判定しているのか。。

これはちょっと、把握し切れなかったので想像の内容なので

誤っていたらすみません。。

◎質問者からの返答

さすがGoogleって感じですね。技術的にも世界TOPだけはあります。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ