0

私たちのサイトには、さまざまなサブドメイン(foo.mysite.com、bar.mysite.com)へのhrefリンクが含まれています。テストの目的で、完全に異なるメインドメイン名でサイトを実行し、新しいドメイン名から離れたサブドメインをポイントしたいと思います。

すべてのリンクを手動で変更するのではなく、次のようなリンクを持つサイトのバージョンを1つだけにしたいのです。

<a href="foo.(window.location.hostname)/mypage?myparam=value">Link</a>

これを行うための最も簡単な構文は何ですか?

リンクをハイジャックするjQueryコードを記述できることは知っていますが、リンク内の構文は単純な方がよいでしょう。

4

4 に答える 4

1

クリックしてみてください:

<a href="foo.{host}/mypage?myparam=value"
   onclick="this.href=this.href.replace('{host}', window.location.hostname)">Link</a>
于 2012-06-28T17:04:45.190 に答える
0

ENVバックエンドシステムが変数を使用して本番環境間で変更を加えるのを見てきました。たとえば、var ENV = 'live'またはのような環境変数を設定しますvar ENV = 'production。次に、それを使用して、使用するサブドメインを定義できます。

var ENV = 'production';

// set subdomain based on ENV variable
var subdomain = 'bar';
if(ENV == 'production'){
   var subdomain = 'foo';
}

// modify every link to use the subdomain
$('a').each(function(){
  var modifyHref = 'http://' + subdomain + $(this).attr('href')
  $(this).attr('href', modifyHref);
});

ただし、フロントエンドJSでこれを行うべきではないと思います。

サブドメインが問題になる場合は、すべてのパスをに設定します<a href="/mypage?myaparam=value">。そうすれば、サブドメインが何であるかは問題になりません。fooサブドメインを使用している場合は、「foo.whatever / mypage?myaparam = value」に移動し、barサブドメインを使用している場合は、「bar.whatever / mypage?myaparam=value」に移動します。

于 2012-06-28T17:01:18.383 に答える
0

正直なところ、このような単純でグローバルなテスト変更の簡単な方法は、サイト全体で検索/置換を行うことです。計画を進めたい場合は、可能であればPHPなどのサーバー側言語を使用します。それはあなたが望むもののためにはるかに確実になります。

于 2012-06-28T17:01:23.740 に答える
0

javascripts onclick イベントを使用できませんでしたか? これを行うには:

<a href="#" onclick="javascript:window.location.href = 'foo.' + window.location.hostname + '/mypage?myparam=value';">Link</a>
于 2012-06-28T17:10:07.723 に答える