ระบุว่าฉันอยู่ในหน้าต่อไปนี้:
http://www.webmail.com/pages/home.aspx
ฉันจะดึงชื่อโฮสต์ ( "http://www.webmail.com") ด้วย JavaScript ได้อย่างไร
ระบุว่าฉันอยู่ในหน้าต่อไปนี้:
http://www.webmail.com/pages/home.aspx
ฉันจะดึงชื่อโฮสต์ ( "http://www.webmail.com") ด้วย JavaScript ได้อย่างไร
คำตอบ:
var host = window.location.hostname;
หรืออาจจะเป็น
var host = "http://"+window.location.hostname;
หรือถ้าคุณชอบเรียงต่อกัน
var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);
httpว่า ใช้โปรโตคอลที่เกี่ยวข้อง อาจเหมาะสมกว่าการเข้ารหัสแบบแข็ง
concatเมื่อทำงานร่วมกับบางสิ่งบางอย่างที่จะผลิตสตริงผมว่าคุณควรใช้ ในตัวอย่างvar a = 1 + 2 + " should be 12";เทียบกับรุ่น concat var a = "".concat(1).concat(2).concat(" should be 12");นี้ การใช้ concat จะช่วยให้คุณประหยัดปัญหาได้มาก+สำหรับการคำนวณไม่ใช่การต่อข้อมูล
hostnameจะให้โดเมนเท่านั้นและhostจะให้พอร์ตด้วย นี่คือเครื่องมือขนาดเล็กที่ยอดเยี่ยมในการดูลิงค์กายวิภาคศาสตร์bl.ocks.org/abernier/3070589
ในการรับชื่อโฮสต์: location.hostname
แต่ตัวอย่างของคุณกำลังมองหารูปแบบเช่นกันดังนั้นlocation.originดูเหมือนจะทำสิ่งที่คุณต้องการใน Chrome แต่ไม่ได้พูดถึงในเอกสาร Mozdev คุณสามารถสร้างมันด้วย
location.protocol + '//' + location.hostname
หากคุณต้องการหมายเลขพอร์ตเช่นกัน (สำหรับเมื่อไม่ใช่ 80) ให้ทำดังนี้:
location.protocol + '//' + location.host
คุณสามารถรับโปรโตคอลโฮสต์และพอร์ตโดยใช้สิ่งนี้:
window.location.origin
| Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|----------------------------------|-------|-----------------|-------------------|-------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | 11 | ? | 7 (possibly earlier, see webkit bug 46558) |
| Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|----------------------------------|-------|------------------------|----------|--------------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | ? | ? | 7 (possibly earlier, see webkit bug 46558) |
ความเข้ากันได้ของเบราว์เซอร์ทั้งหมดมาจากMozilla Developer Network
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
ขึ้นอยู่กับความต้องการของคุณคุณสามารถใช้window.locationคุณสมบัติอย่างใดอย่างหนึ่ง ในคำถามของคุณคุณจะถามเกี่ยวกับโฮสต์ซึ่งอาจถูกดึงโดยใช้window.location.hostname(เช่นwww.example.com) ในตัวอย่างของคุณคุณกำลังแสดงบางสิ่งที่เรียกว่าจุดกำเนิดซึ่งอาจถูกดึงโดยใช้window.location.origin(เช่นhttp://www.example.com)
var path = window.location.origin + "/";
//result = "http://localhost:60470/"
ฉันชอบอันนี้ขึ้นอยู่กับวัตถุประสงค์
window.location.href.split("/")[2] == "localhost:17000" //always domain + port
คุณสามารถนำไปใช้กับ URL ใด ๆ
var url = "http://localhost:17000/sub1/sub2/mypage.html?q=12";
url.split("/")[2] == "localhost:17000"
url.split("/")[url.split("/").length-1] == "mypage.html?q=12"
การลบโปรโตคอลโดเมนและพา ธ ออกจาก url-string (เส้นทางสัมพัทธ์)
var arr = url.split("/");
if (arr.length>3)
"/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"