2009-11-03 16 views

उत्तर

34

जहाँ भी संभव हो, तो आप window.location.href से अधिक <a href="foo.html"> का उपयोग करना चाहिए, बहुत अच्छे कारणों की एक संख्या के लिए।

  1. यदि आपके पास जावास्क्रिप्ट अक्षम है, तो कोई भी लिंक काम नहीं करेगा।
  2. स्पाइडर, जैसे कि Google Bot, जावास्क्रिप्ट की व्याख्या नहीं करते हैं, और इसलिए वे आपके किसी भी लिंक का पालन नहीं करेंगे।
  3. आईटी BREAK इंटरनेट है। नहीं, वास्तव में हालांकि - वर्ल्ड वाइड वेब पृष्ठों के बीच खोजने योग्य लिंक के आधार पर बनाया गया है। गैर-मानक के साथ इन संबंधों को छुपाएं .. गलती, लिंक, उस बहुत ही आधार के खिलाफ चला जाता है।
  4. यह एक खराब उपयोगकर्ता अनुभव के लिए बनाता है: एक उपयोगकर्ता को उम्मीद है कि जब वे एक लिंक पर माउस, वे कुछ जानकारी के लिए उपयोग होगा: (! बहुत महत्वपूर्ण)
    • गंतव्य स्थिति पट्टी में प्रदर्शित
    • राइट क्लिक करें -> लिंक का स्थान कॉपी
    • मध्यम क्लिक करें -> खुले नए टैब
    • आदि
    • window.location इन
  5. के सभी टूट जाता है का उपयोग करना
  6. यह बहुत आसान है!

    window.open('thepage.html', '_self'); 
    

    यानी:

+0

ग्रेट उत्तर। मैं नई विंडो में खोलने के लिए Shift + क्लिक भी जोड़ूंगा और Ctrl + नए टैब में खोलने के लिए क्लिक करें। –

0

एंकर के साथ आप लक्ष्य संपत्ति निर्दिष्ट कर सकते हैं, लेकिन window.location.href के साथ आप नहीं कर सकते हैं। आम तौर पर जब उपयोगकर्ता किसी अन्य स्थान पर ब्राउज़र को रीडायरेक्ट करना चाहता है तो एंकर का उपयोग किया जाता है, window.location.href का उपयोग तब किया जाता है जब रीडायरेक्शन जावास्क्रिप्ट का उपयोग करके किया जाता है।

+3

ठीक है, यह सच है लेकिन थोड़ा भ्रामक है। आप उस ऑब्जेक्ट द्वारा जावास्क्रिप्ट संस्करण में अंतर्निहित लक्ष्य का चयन करते हैं जिसे आप विधि कहते हैं। ** विंडो **। location.href वर्तमान विंडो को बदलता है, लेकिन ** mytarget **। location.href एक और विंडो/फ्रेम बदल देगा (माना जाता है कि चर को उचित घोषित किया गया था)। –

+0

भले ही, आपको लक्ष्य विशेषता का उपयोग नहीं करना चाहिए। –

+1

और किसने कहा था? वैसे भी वह मतभेदों के लिए पूछता है और यह उनमें से एक है इसलिए मतदान करना जारी रखें लेकिन यह सही है। @dtsazza: आप सही हैं लेकिन वह खिड़की के बारे में बात कर रहा है। स्थान कुछ नहीं है। स्थान – mck89

0

दिया अन्य उत्तर के अलावा, href विशेषता sapecified के साथ एक <a> तत्व पर क्लिक ब्राउज़र href में यूआरएल के लिए नेविगेट करने के लिए, के लिए जावास्क्रिप्ट सक्षम है या नहीं या नहीं का कारण होगा।

1

यह न भूलें कि उपरोक्त उत्तरों के अलावा, हाइपरलिंक (एंकर टैग) पर क्लिक करने से उस तत्व के onclick हैंडलर (यदि कोई हो) ट्रिगर होगा, जबकि जावास्क्रिप्ट संस्करण स्पष्ट रूप से विंडो के स्थान को बदलता नहीं है और बस बदलता है।

यदि आप एक क्लिक अनुकरण करना चाहते हैं तो मैन्युअल रूप से ऑनक्लिक हैंडलर को जावास्क्रिप्ट से आना संभव है, लेकिन आपको इसे मैन्युअल रूप से करना याद रखना चाहिए। आपके द्वारा पोस्ट किए गए स्निपेट इस संबंध में भिन्न होंगे, जो किसी भी व्यवहारिक मतभेद का कारण हो सकता है।

3

window.location.href = 'thepage.html' स्थापना कॉल करने जैसा ही है लक्ष्य एक ही खिड़की तक सीमित है, क्योंकि वह स्थान है जहां स्थान संपत्ति है।

window.open('thepage.html', '_blank'); 

यह वही है:

<a href="thepage.html">...</a> 

आप खुले विधि के बजाय एक अलग लक्ष्य निर्दिष्ट करने के लिए, एक नई विंडो की तरह उपयोग कर सकते हैं: यह एक लक्ष्य विशेषता के बिना एक लिंक पर क्लिक जैसा ही होता है कि लक्ष्य के साथ एक लिंक पर क्लिक के रूप में प्रभाव:

<a href="thepage.html" target="_blank">...</a> 

तुम भी एक नई विंडो खोलने के लिए खुला विधि का उपयोग कर सकते हैं। वापसी मान खिड़की के लिए एक संदर्भ है, तो आप उपयोग कर सकते हैं कि कि वर्तमान विंडो के बजाय खिड़की का स्थान निर्धारित करने के लिए:

var w = window.open('about:blank', '_blank'); 
w.location.href = 'thepage.html'; 
0

document.referrer का यूआरएल के लिए सर्वर और ग्राहक पर एक संदर्भ है वह पेज जिसमें उपयोगकर्ता को नए पेज पर जाने के लिए क्लिक किया गया लिंक- लिखित स्थान विधियां नहीं हैं।

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