วิธีการรับฐาน URL ด้วย jQuery หรือ JavaScript?
ใน Joomla PHP ฉันสามารถใช้ $this->baseurl เพื่อรับเส้นทางพื้นฐาน แต่ฉันต้องการรับเส้นทางฐานใน jQuery
เส้นทางฐานอาจเป็นตัวอย่างใดก็ได้ต่อไปนี้:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
ตัวอย่าง example อาจเปลี่ยนแปลงได้ด้วย
คำตอบ #1
ฉันคิดว่าสิ่งนี้จะเหมาะกับคุณดี:
var base_url = window.location.origin;
var host = window.location.host;
var pathArray = window.location.pathname.split( '/' );
นี่คือตาราง Can I Use...
คำตอบ #2
อันนี้จะช่วยคุณได้...
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
คำตอบ #3
นี่จะได้ URL พื้นฐาน
var baseurl = window.location.origin+window.location.pathname;
คำตอบ #4
document.baseURI คืนค่า URL พื้นฐานโดยยังคงเคารพค่าที่อยู่ในแท็ก <base/> https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURI
คำตอบ #5
นี่เป็นคำถามเก่าแก่มาก แต่ต่อไปนี้เป็นวิธีที่ฉันใช้ส่วนตัว...
รับ URL มาตรฐาน/ฐาน
อย่างที่หลายคนได้กล่าวไว้แล้ว สิ่งนี้ใช้ได้กับสถานการณ์ส่วนใหญ่
var url = window.location.origin;
รับ URL พื้นฐานแบบสมบูรณ์
อย่างไรก็ตาม วิธีที่เรียบง่ายนี้สามารถใช้เพื่อลบหมายเลขพอร์ตใด ๆ ออกได้
var url = "http://" + location.host.split(":")[0];
แก้ไข: เพื่อตอบสนองต่อความกังวลที่ Jason Rice ตั้งไว้ สามารถใช้วิธีต่อไปนี้เพื่อแทรกประเภทโปรโตคอลที่ถูกต้องโดยอัตโนมัติ ...
var url = window.location.protocol + "//" + location.host.split(":")[0];
ตั้งค่า URL พื้นฐาน
เป็นโบนัส -- จากนั้นสามารถกำหนดค่า URL พื้นฐานใหม่ได้ทั่วทั้งระบบ
document.head.innerHTML = document.head.innerHTML + "<base href='" + url + "' />";
คำตอบ #6
สิ่งนี้ไม่สามารถทำได้ด้วย JavaScript เนื่องจากนี่เป็นคุณสมบัติฝั่งเซิร์ฟเวอร์ JavaScript ฝั่งไคลเอ็นต์ไม่สามารถทราบได้ว่าติดตั้ง Joomla ไว้ที่ไหน ตัวเลือกที่ดีที่สุดคือการรวมค่าของ $this->baseurl กับ JavaScript บนหน้าเว็บ จากนั้นใช้ค่านี้ (phpBaseUrl)
คุณสามารถสร้าง URL แบบนี้ได้:
var loc = window.location;
var baseUrl = loc.protocol + "//" + loc.hostname + (loc.port? ":"+loc.port : "") + "/" + phpBaseUrl;
