2

いくつかのリンクを含む単純なHTMLページを作成しようとしていますが、ローカルであるか、SSHポートフォワーディングを使用していることを検出できるように作成しようとしています。

いくつかの情報;

ローカルでWebページにアクセスするときに使用するURL:192.168.3.5/www/index.html

SSHポートフォワーディングを使用するときに使用するURL:127.0.0.1:9009/www/index.html

これは、index.htmlページで使用している完全なコードです。

<HTML>
- SABNZBD : Pick <A href="#" onclick="javascript:window.location.port=8080">LOCAL</a> or <A href="#" onclick="javascript:window.location.port=9001">REMOTE</a> Connection.
</HTML>

このコードを使用する場合;

 onclick="javascript:window.location.port=9001"

それは一種の仕事です、それは戻ります

http://127.0.0.1:9001/www/#

私は本当にそれがこれだけを返すことを望みます:

http://127.0.0.1:9001/

以下のコードを使用する方法はありますか?したがって、パス名を削除し、指定したホスト名とポート名を使用しますか?私はそれを機能させることができないようです。

onclick="javascript:window.location.hostname && window.location.port=9001"

Thxマット。

4

2 に答える 2

3

以下はあなたが必要とすることをするべきです、あなたが使用すべきで+ない文字列を連結するとき&&

window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';

上記をonclickハンドラーで使用できます。

onclick="window.location = ..."

onclick="javascript:"これはデフォルトで想定されているため、指定する必要はありません。

また、インラインクリックハンドラーを使用するよりも、以下を使用することをお勧めします。

上記の両方を一緒に使用する方法については(最新のブラウザーの場合はaddEventListener、IEの場合はattachEvent)

または、生活をよりシンプルにしたい場合は、これらのブラウザの違いを自動的に処理するJavaScriptライブラリを使用できます。jQueryのように。

$('.class_on_first_link').click(function(){
  window.location = window.location.protocol + 
   '//' + window.location.hostname + ':8080';
});

$('.class_on_second_link').click(function(){
  window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';
});

アップデート

上記の省略記号の意味は次のとおりです。

<a href="#" onclick="window.location = window.location.protocol + 
   '//' + window.location.hostname + ':9001';">Port 9001</a>
<a href="#" onclick="window.location = window.location.protocol + 
   '//' + window.location.hostname + ':8080';">Port 8080</a>
于 2012-10-30T00:33:25.183 に答える
0

pathname同様に設定することはトリックを行う必要があります

onclick="window.location.port=9001;window.location.pathname='/'"
于 2012-10-30T00:36:13.490 に答える