私は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. GreaseMonkeyを使用してURLを変更してください
- 2. chrome.bookmarksからランダムなURLを取得してnewTabにロードしてください
- 3. web.configでサブドメインのURLを書き直してください
- 4. URLからJsonを取得してtxtファイルにログインしてください
- 5. Greasemonkeyを使用して、その内容に基づいてhtmlテーブルのセルフォーマットを変更してください。
- 6. Greasemonkeyを使用して、特定のラジオボタンを確認してからページを送信してください
- 7. jqueryを使用してoutter親ULを取得してください
- 8. 正規表現またはJavascriptを使用してURLからファイル名を取得してください
- 9. mod_proxyを使用してポートをurl apache2に変更してください
- 10. ASP.NETを使用してデータベースからデータを取得し、JSの値を使用してください
- 11. AngularJSのページのURLのパラメータを使用してください
- 12. フェッチでリクエストを取得して反応してください
- 13. PHPを使用してYouTubeの相対URLを解決してください
- 14. gulpタスクを使用してCSSファイルのURLを変更してください
- 15. Javascriptを使用してURLからパラメータを削除してください
- 16. Regexを使用してURLコンテンツ全体を抽出してください
- 17. Storekit - Firebase機能を使用してサブスクリプションステータスURLを設定してください。
- 18. スムーススクロールを使用してURLからアンカーリンクを削除してください
- 19. URLを使用してフォーム%20の問題を記入してください
- 20. Page 1からアレイを取得し、オン・クリック(AngularJS)を使用してページ2で使用してください。
- 21. URLを確認してください
- 22. グリッド行をダブルクリックしてiframe ext.netにロードしてください
- 23. Axiosから取得したデータを使用してください。
- 24. ModelState.AddModelError()のattributepathを取得するには、nameof()を使用してください。
- 25. 頭にmodernizrをロードしますが、require.jsで使用してください
- 26. Pythonリクエスト:URLのワイルドカード部分として*を使用してください
- 27. を使用してください:android:layout_gravity
- 28. マクロを使用してください。
- 29. スイフト&ファイアーベース| textFieldを使用してデータを取得し、firebaseにデータを照会してください
- 30. すべてのカテゴリではなく、URLに基づいて商品カテゴリを取得してください
ありがとうございました! –
ドメインがgoogle.co.ukの場合はどうなりますか?これにより間違ったサブドメインが返されます。 – TLK
サブドメインのみを取得するには:window.location.host.split( '。')[0]; –