私はURL http://somesubdomain.domain.com(サブドメインは、ドメインは常に同じです)を持っています。サブドメインを取得し、greasemonkeyを使用してdomain.com/some/path/here/somesubdomainのようなものでページをリロードする必要があります(または、URL domain.com/some/path/here/somesubdomainの新しいウィンドウを開きます)。サブドメインを取得し、greasemonkeyを使用してURLにロードしてください
答えて
var full = window.location.host
//window.location.host is subdomain.domain.com
var parts = full.split('.')
var sub = parts[0]
var domain = parts[1]
var type = parts[2]
//sub is 'subdomain', 'domain', type is 'com'
var newUrl = 'http://' + domain + '.' + type + '/your/other/path/' + subDomain
window.open(newUrl);
デレクが提供する回答は、最も一般的な例では動作しますが、「xxx.xxx」サブドメイン、または「host.co.uk」のために動作しません。 (また、window.location.hostを使用すると、処理されないポート番号も取得されます:http://www.w3schools.com/jsref/prop_loc_host.asp)
正直言って私はこの問題の完璧な解決策はありません。 個人的には、私がホスト名の分割を行う方法を作成しました。これは、より多くのホスト名をカバーするために頻繁に使用します。
function getSubdomain(hostname) {
var regexParse = new RegExp('[a-z\-0-9]{2,63}\.[a-z\.]{2,5}$');
var urlParts = regexParse.exec(hostname);
return hostname.replace(urlParts[0],'').slice(0, -1);
}
console.log(getSubdomain(window.location.hostname));
// for use in node with express: getSubdomain(req.hostname)
これら2つの方法は(co.ukを含む)は、最も一般的なドメインで動作します。
この方法は、この方法は、唯一の文字列としてサブドメインを返し{domain: "", type: "", subdomain: ""}
function splitHostname() {
var result = {};
var regexParse = new RegExp('([a-z\-0-9]{2,63})\.([a-z\.]{2,5})$');
var urlParts = regexParse.exec(window.location.hostname);
result.domain = urlParts[1];
result.type = urlParts[2];
result.subdomain = window.location.hostname.replace(result.domain + '.' + result.type, '').slice(0, -1);;
return result;
}
console.log(splitHostname());
にホスト名を分割します :サブドメインの末尾にあるslice
は余分なドットを削除することです。
これがあなたの問題を解決することを願っています。
私が見つけたベスト&最も正確な答え、 – webdevinci
私はDereksのソリューションを使って、サブドメインを持っています。 Vladsの答えは私の場合にはうまくいく。 – MartinJH
ここで提供されているソリューションは、時間の一部、またはほとんどの時間で動作しますが、どこでも動作しません。私の知る限りでは、の完全サブドメインを見つける最良の方法はドメインです(また、サブドメインにもピリオドがあることを覚えておいてください!サブサブドメインなどを持つことができます)は、Public Suffix List Mozillaによる。
パブリックサフィックスリストにないURLの部分は、サブドメインとドメイン自体にドットで結合されています。パブリックサフィックスを削除すると、ドメインを削除して、ドットの間の最後のセグメントを削除してサブドメインだけを残すことができます。
複雑な例を見てみましょう。 sub.sub.example.pvt.k12.ma.us
をテストしているとします。 pvt.k12.ma.us
は公開サフィックスですが、それは信じられないかもしれません!したがって、あなたがPublic Suffix Listを使用した場合、知られている接尾辞を削除することで、すぐにそれをsub.sub.example
に変えることができます。次に、sub.sub.example
から、sub.sub
まで、ドメインである残りの部分の最後の部分を取り除いた後に行くことができます。サブドメインはsub.sub
です。
- 1. web.configでサブドメインのURLを書き直してください
- 2. Greasemonkeyを使用して、特定のラジオボタンを確認してからページを送信してください
- 3. 正規表現またはJavascriptを使用してURLからファイル名を取得してください
- 4. mod_proxyを使用してポートをurl apache2に変更してください
- 5. ASP.NETを使用してデータベースからデータを取得し、JSの値を使用してください
- 6. Javascriptを使用してURLからパラメータを削除してください
- 7. Regexを使用してURLコンテンツ全体を抽出してください
- 8. URLを確認してください
- 9. 頭にmodernizrをロードしますが、require.jsで使用してください
- 10. を使用してください:android:layout_gravity
- 11. Pythonリクエスト:URLのワイルドカード部分として*を使用してください
- 12. スイフト&ファイアーベース| textFieldを使用してデータを取得し、firebaseにデータを照会してください
- 13. Javascriptを使用してMongoDBに接続してください
- 14. アンドロイドでUSSD応答を取得してみてください
- 15. TuckeyのURL書き換えフィルタを使用して、URLに末尾のスラッシュを追加してください。
- 16. Eclipseの内部WebブラウザからURLを取得してください
- 17. ログインしてくださいcodeigniter URL
- 18. IE8を使用してフレームセットにURLがロードされない
- 19. JavaScriptを使用してファイルサイズを判断してください
- 20. Gruntjsを使用してRestangular.baseUrlを設定してください
- 21. ko.observableArrayを使用して重複をチェックしてください
- 22. ウェブインターフェイスを使用してサービスを設定してください
- 23. PHPを使用してプロキシをチェックしてください
- 24. URLを使用してドキュメントをロードせずにjavacriptからオブジェクトを取得
- 25. JavaScriptを取得するにはクリックしてください
- 26. WPFリストビュー行の値を取得し、Linqクエリを使用してデータベースフィールドと比較してください
- 27. jQueryを使用してサブドメインからJSONを取得
- 28. URLを開くにはオペレーティングシステムに電話してください。
- 29. 常にmy;を使用してください。ローカルを使用しないでください?
- 30. SQL Oracleを使用して選択してください
ありがとうございました! –
ドメインがgoogle.co.ukの場合はどうなりますか?これにより間違ったサブドメインが返されます。 – TLK
サブドメインのみを取得するには:window.location.host.split( '。')[0]; –