ฉันต้องการเปิดลิงค์ในหน้าต่างเดียวกันและในแท็บเดียวกันที่มีเพจพร้อมกับลิงค์
เมื่อฉันพยายามเปิดลิงก์โดยใช้ลิงก์window.open
นั้นจะเปิดขึ้นในแท็บใหม่ไม่ใช่แท็บเดียวกันในหน้าต่างเดียวกัน
ฉันต้องการเปิดลิงค์ในหน้าต่างเดียวกันและในแท็บเดียวกันที่มีเพจพร้อมกับลิงค์
เมื่อฉันพยายามเปิดลิงก์โดยใช้ลิงก์window.open
นั้นจะเปิดขึ้นในแท็บใหม่ไม่ใช่แท็บเดียวกันในหน้าต่างเดียวกัน
คำตอบ:
คุณต้องใช้แอตทริบิวต์ name:
window.open("https://www.youraddress.com","_self")
แก้ไข : URL ควรได้รับการต่อท้ายด้วยโปรโตคอล โดยไม่พยายามเปิด URL ที่เกี่ยวข้อง ทดสอบใน Chrome 59, Firefox 54 และ IE 11
_self
มีการกล่าวถึงในหัวข้อ5.1.6 การเรียกชื่อบริบทของคำแนะนำ HTML5 W3C 28 ตุลาคม 2557เวลา: w3.org/TR/html/browsers.html#browsing-context- ชื่อ (แต่window.location
ยังคงสะอาดกว่า)
ใช้สิ่งนี้:
location.href = "http://example.com";
เพื่อให้แน่ใจว่าลิงก์จะเปิดในแท็บเดียวกันคุณควรใช้ window.location.replace()
ดูตัวอย่างด้านล่าง:
window.location.replace("http://www.w3schools.com");
คุณสามารถให้มันไปที่หน้าเดียวกันโดยไม่ต้องระบุ URL:
window.open('?','_self');
หากคุณมีหน้าเว็บของคุณอยู่ใน "frame" ดังนั้น "Window.open ('logout.aspx', '_ self')"
จะถูกเปลี่ยนเส้นทางภายในเฟรมเดียวกัน ดังนั้นโดยใช้
"Window.open('logout.aspx','_top')"
เราสามารถโหลดหน้าเว็บเป็นคำขอใหม่
หนึ่งในฟีเจอร์จาวาสคริปต์ที่โดดเด่นที่สุดคือการใช้งานตัวจัดการ onclick ได้ทันที ฉันพบว่ากลไกต่อไปนี้น่าเชื่อถือมากกว่าการใช้location.href=''
หรือlocation.reload()
หรือwindow.open
:
// this function can fire onclick handler for any DOM-Element
function fireClickEvent(element) {
var evt = new window.MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true
});
element.dispatchEvent(evt);
}
// this function will setup a virtual anchor element
// and fire click handler to open new URL in the same room
// it works better than location.href=something or location.reload()
function openNewURLInTheSameWindow(targetURL) {
var a = document.createElement('a');
a.href = targetURL;
fireClickEvent(a);
}
โค้ดด้านบนยังมีประโยชน์ในการเปิดแท็บ / หน้าต่างใหม่และข้ามตัวบล็อกป็อปอัพทั้งหมด !!! เช่น
function openNewTabOrNewWindow(targetURL) {
var a = document.createElement('a');
a.href = targetURL;
a.target = '_blank'; // now it will open new tab/window and bypass any popup blocker!
fireClickEvent(a);
}
เปิด URL อื่นเช่นคลิกลิงก์
window.location.href = "http://example.com";
คุณต้องใช้window.open
หรือไม่? สิ่งที่เกี่ยวกับการใช้window.location="http://example.com"
?
window.open(url, wndname, params)
มันมีสามข้อโต้แย้ง หากคุณไม่ต้องการให้เปิดในหน้าต่างเดียวกันให้ตั้งค่า wndname อื่น เช่น:
window.open(url1, "name1", params); // this open one window or tab
window.open(url1, "name2", params); // though url is same, but it'll open in another window(tab).
นี่คือรายละเอียดเกี่ยวกับwindow.open()
คุณสามารถไว้วางใจได้!
https://developer.mozilla.org/en/DOM/window.open
ลองดูสิ
กับ HTML 5 คุณสามารถใช้ประวัติศาสตร์ API
history.pushState({
prevUrl: window.location.href
}, 'Next page', 'http://localhost/x/next_page');
history.go();
จากนั้นในหน้าถัดไปคุณสามารถเข้าถึงวัตถุสถานะได้
let url = history.state.prevUrl;
if (url) {
console.log('user come from: '+ url)
}
นั่นเป็นเรื่องง่าย เปิดหน้าต่างแรกเป็นwindow.open(url, <tabNmae>)
ตัวอย่าง: window.open("abc.com",'myTab')
และต่อไปทุก window.open ใช้ชื่อแท็บเดียวกันแทน_self
, _parent
ฯลฯ
ตรงนี้
window.open("www.youraddress.com","_self")
Just Try in button.
<button onclick="location.reload();location.href='url_name'"
id="myButton" class="btn request-callback" >Explore More</button>
Using href
<a href="#" class="know_how" onclick="location.reload();location.href='url_name'">Know More</a>
window
/tab
/https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Syntax
_self
<a
href="url"
target="_self">
open
</a>
const autoOpenAlink = (url = ``) => {
window.open(url, "open testing page in the same tab page");
}
_blank
สาธิต vue
<div style="margin: 5px;">
<a
:href="url"
@click="autoOpenAlink"
target="_blank"
>
{{url}}
</a>
</div>
vue
autoOpenAlink(e) {
e.preventDefault();
let url = this.url;
window.open(url, "iframe testing page");
},
target=
a
ในความเป็นจริงคุณสามารถตั้งชื่อหน้าต่างของคุณตามที่คุณต้องการ ทุกสิ่งที่คุณต้องการคือตั้งค่าต่าง ๆ เพื่อไม่ให้เปิดในหน้าต่างหรือแท็บเดียวกัน