ตรวจจับ _self หรือ _blank แยกวิเคราะห์ URL ใน href เพื่อฟังก์ชันและ window.open(URL, '_self') หรือ window.open(URL, '_blank')

ฉันใช้เวลา 2 วันที่ผ่านมาในการแก้ไขลิงก์ href="/th" ที่ทำงานผิดปกติหลังจากใส่ jQuery DIVs scroller บางตัวด้วยแถบเลื่อน

ฉันมี href="/th" ลิงก์ใน DIV เหล่านี้ คลิกลิงก์เหล่านั้นแต่เบราว์เซอร์ไม่ได้ทำอะไรเลย ไม่ว่าจะเป็น _self หรือ _blank

ดังนั้นการแฮ็กผ่าน window.open() ส่งผลให้เกิด window.open(URL, '_self') หรือ window.open(URL, '_blank')

ฉันต้องการสร้างฟังก์ชัน jQuery โดยใช้ .class เป็นตัวเลือก ตรวจสอบว่า href="/th" ดั้งเดิมเป็นเป้าหมาย _self หรือ _blank และแยกวิเคราะห์ URL จาก href ไปยังตามลำดับหากมีอย่างอื่นในฟังก์ชันและทำให้ลิงก์ใช้งานได้

เพื่อเคลียร์เรื่อง:

ทั่วไป ‹a href="http://www.google.com" target="_blank"› หรือ ‹a href="http://www.yahoo.com" target="_self"› ไม่ทำงานหลังจากสมัคร scroller เนื้อหา jQuery ข้างต้นกล่าว

ดังนั้นฉันจึงแก้ไขโดยใช้ ‹a onclick="window.open('http://www.google.com/', '_blank');"›

อย่างไรก็ตาม ฉันพยายามทำสิ่งนี้ผ่านฟังก์ชัน jQuery แทนที่จะทำแบบอินไลน์ทุกครั้ง ฟังก์ชันนี้สามารถตรวจจับได้ว่าเป้าหมายเป็น _blank หรือ _self จับ URL และส่งคืนโดยใช้ window.open() พร้อมด้วย _blank หรือ _self ตามลำดับ


person Mars Mellow    schedule 08.08.2012    source แหล่งที่มา
comment
กรุณาแสดงโค้ดให้เราดูหน่อย.. ฉันไม่เข้าใจว่าลิงก์ของคุณมี hrefs ว่างเปล่าหรือเปล่า? ถูกต้องไหม?   -  person Mihai Matei    schedule 08.08.2012
comment
ตัวอย่าง: ‹a href=google.com target=_blank› ‹a href=yahoo.com target=_self› ข้างต้น วิธีการทั่วไปใช้งานไม่ได้ เบราว์เซอร์เพียงแต่ไม่ตอบสนองต่อลิงก์ ดังนั้นฉันจึงพบวิธีแก้ปัญหาโดยใช้: ‹a onclick=window.open('google.com', '_blank');› ‹a onclick=window.open('yahoo.com', '_self' ); แทนที่จะใช้ทริกเกอร์แบบอินไลน์ window.open ฉันชอบที่จะสร้างฟังก์ชัน jQuery เพื่อจับ href=url และ target=value แล้วส่งคืนผ่าน window.open() ของฟังก์ชัน หวังว่านี่จะทำให้สิ่งต่าง ๆ ชัดเจนขึ้นเล็กน้อย   -  person Mars Mellow    schedule 08.08.2012


คำตอบ (1)


สิ่งที่คุณพูดนั้นแปลกมาก ฉันไม่รู้ว่าเหตุใดลิงก์ของคุณจึงไม่ทำงานในเบราว์เซอร์ แต่นี่คือสิ่งที่คุณต้องการ:

$(document).ready(function(){
  $('.links').click(function(){
    var href = $(this).attr("href");
    var target = $(this).attr("target");

    window.open(href, target);

  });
});
person Mihai Matei    schedule 08.08.2012
comment
ขอบคุณเพื่อน ฉันรู้ เพิ่ม 0.s3.envato.com/files/ 19640971/index.html และแก้ไขมัน สิ่งต่อไปที่ฉันรู้ ทั้งหมด ‹a href=www.something.com› ที่อยู่ภายในนั้นไม่ทำงาน - person Mars Mellow; 08.08.2012