2012-02-09 7 views
6

私はユーザーが様々なクライアントのウェブサイトに入力したURLのリストを持っています...私はこのリストをサーバからグリッドにロードしています私はURLをhref HTMLタグでラップしてクリック可能にしました...問題は、ユーザがhttp://またはwwwを除いてURLを入力することがあります。これらのウェブサイトはすべてクライアントのためのものであり、すべてが外部のものであるため、ブラウザはそれらを相対URLとして扱います。これらのURLを相対的ではなく絶対的なものとして扱う方法はありますか?ここでHTML強制URLハイパーリンクは非相対(絶対)として扱われる

は一例です:

<a target='_blank' href='google.com'>google.com</a> 

あなたはこれをしようとした場合、あなたはブラウザがそれがケースではありません相対パスであると仮定しますことがわかります。もしそうでなければ - 私は(HTTPまたはHTTPS可能性があり、私はプロトコルが何であるかを知らないので)「//」をチェックするために選択した

おかげ


ソリューション見つかった、私はそれがhttpのウェブサイトと仮定して、URLを接頭辞を付けます。つまり、ブラウザに絶対にハイパーリンクを扱わせるような方法はありません。

答えて

2

なぜ入力を事前処理せずに必要なときにhttp://を追加しますか?

+0

私は...できますが、多くのバリエーションがあり、多くのURLや時にはwwwがあります。時々彼らはしないし、他のサブドメインなどを持っている...あなたが思うほどきれいではない...私はクリーナーの方法を望んでいた – Ayyoudy

+0

ちょうどhttp://を追加すると、これはクリーンなものと思われるあなたがftpなどのプロトコルを切り替えることを期待していない限り... –

+0

私は言ったように、時々彼らはすでにhttp://を持っているので、ちょうど – Ayyoudy

0

は、相対URIであるです。

にリンクしたい場合は、http://google.com/にリンクする必要があります。

ラッピングしているURIをモデレートすることも、アルゴリズムが相対リンクであるかどうかをアルゴリズムで推測することもできます。

wwwが安全であると想定することはできません。ウェブサイトでの使用は規約に過ぎず、もはや強く続くものではないからです。

0

URLの前に//を追加できます。これはうまくいくはずです。

関連する問題