ทั้งหมดที่ฉันต้องการคือการได้รับ URL เว็บไซต์ ไม่ใช่ URL ที่นำมาจากลิงก์ ในการโหลดหน้าฉันจะต้องสามารถดึง URL ปัจจุบันเต็มรูปแบบของเว็บไซต์และตั้งเป็นตัวแปรที่จะทำตามที่ฉันต้องการ
ทั้งหมดที่ฉันต้องการคือการได้รับ URL เว็บไซต์ ไม่ใช่ URL ที่นำมาจากลิงก์ ในการโหลดหน้าฉันจะต้องสามารถดึง URL ปัจจุบันเต็มรูปแบบของเว็บไซต์และตั้งเป็นตัวแปรที่จะทำตามที่ฉันต้องการ
คำตอบ:
ใช้:
window.location.href
ดังที่ระบุไว้ในความคิดเห็นบรรทัดด้านล่างใช้งานได้ แต่มันถูกบั๊กสำหรับ Firefox
document.URL;
document.URL
พร็อพเพอร์ตี้จะไม่อัปเดตหลังจากเป็นwindow.location
ตัวยึด (#) ในขณะที่window.location.href
ทำ ฉันได้ทำการสาธิตสดที่นี่: jsfiddle.net/PxgKyฉันไม่ได้ทดสอบ Firefox เวอร์ชั่นอื่น ๆ ไม่พบปัญหาในการใช้งานdocument.URL
ใน Chrome 20 และ IE9
window.location.host
และwindow.location.href.toString().split(window.location.host)[1]
document.baseURI
เกี่ยวกับการแล้ว โดยทั่วไปมี 3 วิธีที่จะได้รับ URL document.baseURI
, และdocument.URL
location
name="URL"
คุณสมบัตินี้จะเป็นเงาบนdocument
วัตถุและรหัสของคุณจะแตก ในกรณีนั้นdocument.URL
จะอ้างถึงโหนด DOM แทน window.location.href
ดีกว่าการใช้คุณสมบัติของวัตถุโลกในขณะที่
การเข้าถึงข้อมูล URL
JavaScript มีวิธีการมากมายในการดึงและเปลี่ยน URL ปัจจุบันซึ่งแสดงในแถบที่อยู่ของเบราว์เซอร์ วิธีการทั้งหมดนี้ใช้Location
วัตถุซึ่งเป็นคุณสมบัติของWindow
วัตถุ คุณสามารถสร้างLocation
วัตถุใหม่ที่มี URL ปัจจุบันดังต่อไปนี้:
var currentLocation = window.location;
โครงสร้าง URL พื้นฐาน
<protocol>//<hostname>:<port>/<pathname><search><hash>
โปรโตคอล:ระบุชื่อโปรโตคอลที่จะใช้ในการเข้าถึงทรัพยากรบนอินเทอร์เน็ต (HTTP (ไม่มี SSL) หรือ HTTPS (พร้อม SSL))
ชื่อโฮสต์:ชื่อโฮสต์ระบุโฮสต์ที่เป็นเจ้าของทรัพยากร ตัวอย่างเช่นwww.stackoverflow.com
. เซิร์ฟเวอร์ให้บริการโดยใช้ชื่อของโฮสต์
พอร์ต:หมายเลขพอร์ตที่ใช้เพื่อจดจำกระบวนการเฉพาะที่อินเทอร์เน็ตหรือข้อความเครือข่ายอื่น ๆ จะถูกส่งต่อเมื่อมาถึงเซิร์ฟเวอร์
ชื่อพา ธ :เส้นทางให้ข้อมูลเกี่ยวกับทรัพยากรเฉพาะภายในโฮสต์ที่เว็บไคลเอ็นต์ต้องการเข้าถึง ตัวอย่างเช่น/index.html
.
search:สตริงเคียวรีตามหลังส่วนประกอบพา ธ และจัดเตรียมสตริงของข้อมูลที่รีซอร์สสามารถใช้เพื่อวัตถุประสงค์บางอย่าง (เช่นเป็นพารามิเตอร์สำหรับการค้นหาหรือเป็นข้อมูลที่จะประมวลผล)
แฮช:ส่วนที่ยึดของ URL รวมถึงเครื่องหมายแฮช (#)
ด้วยLocation
คุณสมบัติวัตถุเหล่านี้คุณสามารถเข้าถึงส่วนประกอบ URL เหล่านี้ทั้งหมดและสิ่งที่พวกเขาสามารถตั้งค่าหรือกลับมา
ฉันหวังว่าคุณจะได้คำตอบของคุณ ..
window.location
แต่คุณสมบัติและที่นี่เรามีตัวอย่างvar stringPathName = window.location.pathname
:
substring
คุณสามารถลบมันด้วย อย่างไรก็ตามอาจมีประโยชน์เมื่อคุณต้องการใช้เพื่อเปลี่ยนเส้นทางdocument.location = "/page.html";
จะเปลี่ยนเส้นทางไปยังหน้ารูทpage.html
search
query
อาจจะสามารถปรับให้เข้ากันได้หรือสามารถเพิ่มคำอธิบายเพิ่มเติมได้
ใช้window.location
สำหรับการอ่านและเขียนการเข้าถึงวัตถุตำแหน่งที่เกี่ยวข้องกับเฟรมปัจจุบัน ถ้าคุณเพียงต้องการที่จะได้รับอยู่เป็นสตริงอ่านอย่างเดียวคุณอาจใช้ซึ่งควรมีค่าเช่นเดียวกับdocument.URL
window.location.href
รับ URL หน้าปัจจุบัน:
window.location.href
document
เป็นรูทของทรีเอกสารที่กำหนดโดยสเป็ค window
โดยทั่วไปจะเทียบเท่า แต่อาจไม่ได้อยู่ในบางสถานการณ์ที่แปลก
ตกลงการรับURL แบบเต็มของหน้าปัจจุบันนั้นทำได้ง่ายโดยใช้ JavaScript บริสุทธิ์ ตัวอย่างเช่นลองใช้รหัสนี้ในหน้านี้:
window.location.href;
// use it in the console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"
window.location.href
คุณสมบัติส่งกลับ URL ของหน้าปัจจุบัน
document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<h3>The window.location.href</h3>
<p id="root"></p>
</body>
</html>
ไม่เลวที่จะพูดถึงสิ่งเหล่านี้เช่นกัน:
หากคุณต้องการเส้นทางสัมพัทธ์ให้ใช้window.location.pathname
;
หากคุณต้องการได้รับชื่อโฮสต์คุณสามารถใช้window.location.hostname
;
และถ้าคุณต้องการแยกโปรโตคอลให้ใช้ window.location.protocol
hash
window.location.hash
ดังนั้นwindow.location.href
จัดการทั้งหมดในครั้งเดียว ... โดยพื้นฐาน:
window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
//true
นอกจากนี้ยังใช้window
ไม่จำเป็นถ้าอยู่ในขอบเขตหน้าต่าง ...
ดังนั้นในกรณีนี้คุณสามารถใช้:
location.protocol
location.hostname
location.pathname
location.hash
location.href
ในการรับเส้นทางคุณสามารถใช้:
console.log('document.location', document.location.href);
console.log('location.pathname', window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL
เปิดเครื่องมือสำหรับนักพัฒนาพิมพ์ต่อไปนี้ในที่คอนโซลและกดEnter
window.location
เช่นด้านล่างเป็นภาพหน้าจอของผลลัพธ์ในหน้าปัจจุบัน
คว้าสิ่งที่คุณต้องการจากที่นี่ :)
window.location.href
เพื่อรับ URL ที่สมบูรณ์window.location.pathname
เพื่อรับ URL ออกจากโฮสต์คุณสามารถรับตำแหน่ง URL ปัจจุบันด้วยแท็กแฮชได้โดยใช้:
JavaScript:
// Using href
var URL = window.location.href;
// Using path
var URL = window.location.pathname;
jQuery :
$(location).attr('href');
var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
currentPageUrlIs = this.href.toString().toLowerCase();
}else{
currentPageUrlIs = document.location.toString().toLowerCase();
}
รหัสข้างต้นยังสามารถช่วยใครบางคน
http://www.server.com/path/to/Script.php?option=A1B2C3
ถ้าระบบไฟล์เป็นแบบตรงตามตัวพิมพ์ใหญ่ (Linux / Unix) ที่ไม่จำเป็นต้องมี Script.php และ script.php เหมือนกัน และแม้ว่าจะไม่ได้เป็นกรณีที่สำคัญ (Windows, Mac Os บางส่วน) ?option=A1B2C3
จะไม่เหมือนกับของหรือแม้กระทั่ง?option=a1b2c3
?Option=A1B2C3
เฉพาะเซิร์ฟเวอร์เท่านั้นที่มีตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: www.server.com หรือ www.SeRvEr.cOm เหมือนกัน
การเพิ่มผลลัพธ์เพื่อการอ้างอิงอย่างรวดเร็ว
window.location;
Location {href: "/programming/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ, …}
document.location
Location {href: "/programming/1034621/get-the-current-url-with-javascript",
ancestorOrigins: DOMStringList,
origin: "https://stackoverflow.com",
replace: ƒ, assign: ƒ
, …}
window.location.pathname
"/questions/1034621/get-the-current-url-with-javascript"
window.location.href
"/programming/1034621/get-the-current-url-with-javascript"
location.hostname
"stackoverflow.com"
สำหรับ URL ที่สมบูรณ์พร้อมสตริงการสืบค้น:
document.location.toString().toLowerCase();
สำหรับ URL โฮสต์:
window.location
ใน JSTL เราสามารถเข้าถึงเส้นทาง URL pageContext.request.contextPath
ปัจจุบันใช้ หากคุณต้องการโทร Ajax ให้ใช้ URL ต่อไปนี้
url = "${pageContext.request.contextPath}" + "/controller/path"
ตัวอย่าง: สำหรับหน้านี้จะให้http://stackoverflow.com/posts/36577223
http://stackoverflow.com/controller/path
window.location
วิธีการรับวัตถุตำแหน่งปัจจุบันคือ
เปรียบเทียบสิ่งนี้กับdocument.location
ซึ่ง แต่เดิมส่งคืน URL ปัจจุบันเป็นสตริงเท่านั้น น่าจะเป็นที่จะหลีกเลี่ยงความสับสนถูกแทนที่ด้วยdocument.location
document.URL
และเบราว์เซอร์ที่ทันสมัย map เพื่อdocument.location
window.location
ในความเป็นจริงเพื่อความปลอดภัยของเบราว์เซอร์ที่คุณควรใช้มากกว่าwindow.location
document.location
สำหรับผู้ที่ต้องการวัตถุ URL จริงอาจเป็นประโยชน์สำหรับยูทิลิตี้ที่ใช้ URL เป็นอาร์กิวเมนต์:
const url = new URL(window.location.href)
คำตอบของ Nikhil Agrawal นั้นยอดเยี่ยมเพียงเพิ่มตัวอย่างเล็ก ๆ น้อย ๆ ที่นี่คุณสามารถทำได้ในคอนโซลเพื่อดูส่วนประกอบต่าง ๆ ในการทำงาน:
ถ้าคุณต้องการ URL พื้นฐานที่ไม่มีพารามิเตอร์พา ธ หรือเคียวรี (ตัวอย่างเช่นการร้องขอ AJAX เพื่อทำงานบนเซิร์ฟเวอร์การพัฒนา / การจัดเตรียมและการใช้งาน) window.location.origin
จะเป็นการดีที่สุดเนื่องจากจะเก็บโปรโตคอลและพอร์ตเสริม (ในการพัฒนา Django มีพอร์ตที่ไม่ได้มาตรฐานซึ่งจะแตกถ้าคุณใช้ชื่อโฮสต์ ฯลฯ )
location.origin+location.pathname+location.search+location.hash;
คุณสามารถรับลิงค์เต็มของหน้าปัจจุบันผ่านlocation.href
และเพื่อรับลิงค์ของคอนโทรลเลอร์ปัจจุบันให้ใช้:
location.href.substring(0, location.href.lastIndexOf('/'));
รับ URL ปัจจุบันด้วย JavaScript:
window.location.toString ();
window.location.href
หากคุณอ้างถึงลิงก์เฉพาะที่มีรหัสนี้สามารถช่วยคุณได้
$(".disapprove").click(function(){
var id = $(this).attr("id");
$.ajax({
url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
type: "post",
success:function()
{
alert("The Request has been Disapproved");
window.location.replace("http://localhost/sample/page/"+id+"");
}
});
});
ฉันใช้อาแจ็กซ์ที่นี่เพื่อส่งรหัสและเปลี่ยนหน้าโดยใช้window.location.replace เพียงเพิ่มแอตทริบิวต์id=""
ตามที่ระบุไว้
ขั้นแรกให้ตรวจสอบการโหลดหน้าเว็บอย่างสมบูรณ์
browser,window.location.toString();
window.location.href
จากนั้นเรียกใช้ฟังก์ชันที่รับ URL ตัวแปร URL และพิมพ์บนคอนโซล
$(window).load(function(){
var url = window.location.href.toString();
var URL = document.URL;
var wayThreeUsingJQuery = $(location).attr('href');
console.log(url);
console.log(URL);
console.log(wayThreeUsingJQuery );
});