2012-04-23 35 views
10

मैंने एक परियोजना के लिए एक वेबसाइट बनाई है जो मैं कर रहा हूं। वेबसाइट की सामग्री में बाहरी वेब पृष्ठों के लिए कुछ लिंक हैं जिन पर जाया जा सकता है। उस समय जब उपयोगकर्ता किसी एक लिंक पर क्लिक करता है तो उसे निर्दिष्ट लिंक पर ले जाया जाएगा और वह अब वर्तमान पृष्ठ पर नहीं होगा। मैं क्या करना चाहता था, उस लिंक पर निर्दिष्ट वेबसाइट पर क्लिक किया गया है जब उपयोगकर्ता लिंक पर क्लिक करता है तो एक नए टैब में दिखाई देता है। इस प्रकार उपयोगकर्ता वर्तमान पृष्ठ पर रहता है, वह एक है और दूसरे टैब पर दूसरे पेज को भी देख सकता है।एक नए टैब में एक लिंक खोलना

मैं इंटरनेट पर देखा और यह जो उपयोगी लग रहा था मिल गया है:

function externalLinks() 
{ 
    var anchors = document.getElementsByTagName("a"); 
    for (var i=0; i<anchors.length; i++) 
    { 
     var anchor = anchors[i]; 
     if(anchor.getAttribute("href")) 
     anchor.target = "_blank"; 
    } 
} 
window.onload = externalLinks; 

समस्या का सामना करना पड़ रहा हूँ कि मेरी वेबसाइट के नेविगेशन बार एंकर टैग होता है। तो अब यदि उपयोगकर्ता ने navbar पर लिंक पर क्लिक किया है तो यह एक नया टैब खुल जाएगा। मैं यह केवल तभी करना चाहता हूं जब उपयोगकर्ता मेरी वेबसाइट की सामग्री में किसी लिंक पर क्लिक करता है। इसलिए यदि उपयोगकर्ता ने navbar में किसी लिंक पर क्लिक किया है तो उसे एक नया टैब नहीं खोलना चाहिए और उसे केवल निर्दिष्ट गंतव्य पर ले जाना चाहिए।

मैं सामग्री में सभी लिंक करने के लिए एक वर्ग को जोड़ने की कोशिश की और getElementByClassName का उपयोग लेकिन यह अभी भी काम नहीं किया

कोई भी इस

+1

यह शायद एक अच्छा विचार की तरह लगता है, तुम सच में आपके आगंतुक पर इस तरह के निर्णय नहीं लिए मजबूर किया जाना चाहिए - देखें: http : //www.webcredible.co.uk/user-friendly-resources/web-usability/new-browser-windows.shtml – CJM

उत्तर

28


तुम बस HTML का उपयोग कर सकते हैं।लक्ष्य विशेषता पर

अधिक जानकारी: http://www.w3schools.com/tags/att_a_target.asp इसके अलावा: http://www.w3schools.com/html/html_links.asp

संपादित करें: फिर से

<a href="YourAmazingURL" onclick="window.open(this.href,'_blank');return false;">Click here for Amazing URL</a> 

या,:

एक्सएचटीएमएल के लिए, बस यह करने के

<a href="http://www.google.com/" onclick="window.open(this.href,'_blank');return false;">Google</a> 

+0

समस्या यह है कि मुझे केवल एक्सएचटीएमएल का उपयोग करने की आवश्यकता है, और पृष्ठ को सत्यापित करते समय यह कहता है कि लक्ष्य एक विशेषता नहीं है –

+0

वहां - एक्सएचटीएमएल के लिए अपडेट किया गया। – anonymous

+0

धन्यवाद। मुझे ऐसा करने के लिए jQuery का उपयोग करने का एक तरीका भी मिला, लेकिन इस तरह यह जानना भी अच्छा है :-)। –

2

साथ मेरी मदद कर सकते है कि आप इस के लिए जावास्क्रिप्ट का उपयोग करना होगा ?

यदि नहीं, तो आप सीधे एचटीएमएल में एक टैग में विशेषता जोड़ सकते हैं।

उदाहरण के लिए: <a href="http://www.google.co.uk" target="_blank">Google</a>

कि शायद आप यह करने के लिए यदि जावास्क्रिप्ट की आवश्यकता नहीं है के लिए एक आसान तरीका होगा। अपने जावास्क्रिप्ट में

<a href="www.google.com" id="theidgoeshere">Google</a> 

फिर

var anchor = document.getElementById("theidgoeshere"); 
    if(anchor.getAttribute("href")) 
     anchor.target = "_blank"; 

यह भी ध्यान रखें कि आप देख सकते हैं:

+1

समस्या यह है कि मुझे केवल एक्सएचटीएमएल का उपयोग करने की आवश्यकता है, और पृष्ठ को सत्यापित करते समय यह लक्ष्य कहता है एक विशेषता नहीं है –

-1

आप उपयोग करना document.getElementById("theidgoeshere");

ऐसा करने के लिए चाहते हैं, इसलिए की तरह अपने लिंक में आईडी गुण सेट जावास्क्रिप्ट के बिना करने के लिए। अपने एंकर टैग में बस target="_blank" डालें।

<a target="_blank" href="YourAmazingURL">Click here for Amazing URL</a> 

एक और उदाहरण::

<a target="_blank" href="http://www.google.com/">Google</a> 

इस लक्ष्य विशेषता का लाभ लेता है

0

आप जावास्क्रिप्ट पर भरोसा करने की जरूरत है: (चाहे लंगर लिंक अंक एक बाहरी स्थान के लिए नहीं की जाँच करने के लिए या)

मूल रूप से आप बस अपने if शर्त बदलने की जरूरत है।

तो if(anchor.getAttribute("href")) के बजाय, if(anchor.getAttribute("href") && anchor.hostname!==location.hostname) का उपयोग करें।

कोड का एक सा साफ के साथ, अपने समारोह के रूप में देखना चाहिए इस प्रकार है:

function externalLinks() { 
    for(var c = document.getElementsByTagName("a"), a = 0;a < c.length;a++) { 
    var b = c[a]; 
    b.getAttribute("href") && b.hostname !== location.hostname && (b.target = "_blank") 
    } 
} 
; 
externalLinks(); 
+0

क्या डाउनवॉटर डाउनवोट के लिए कोई टिप्पणी प्रदान कर सकता है? धन्यवाद! – eyecatchUp

संबंधित मुद्दे