2014-04-29 11 views
13

पर यूआरएल जोड़ता है जब मैं window.open ("www.google.com", "_blank") का उपयोग करता हूं;window.open() बस मेरे वर्तमान यूआरएल

window.open("www.google.com", "_blank"); 

एक नया टैब खोला जाए, लेकिन url नहीं है "www.google.com", यह "= url-ए-था-पर =/www.google.com"।

यह कोड (और एकमात्र प्रासंगिक कोड) का एक स्निपेट है। http://jsfiddle.net/FUYTY/

jsfiddle में यह थोड़ा अलग व्यवहार करता है, लेकिन फिर भी यह काम नहीं करता है।

मैं क्या गलत कर रहा हूं?

+2

'www.google.com' एक स्थानीय पथ होगा, उदाहरण के लिए एक निर्देशिका का जिक्र करना आपके सर्वर पर एक ही नाम का। इसके बजाय आपको बाहरी डोमेन से लिंक करने की आवश्यकता है, यह एक पूर्ण यूआरएल है, इसलिए कुछ http: // www.google.com/'जैसा है। – CBroe

+5

यह सुनिश्चित नहीं है कि यह इतना भारी क्यों हो रहा है। यह एक स्पष्ट समाधान के साथ एक वैध सवाल है। – Alex

उत्तर

14

आप सर्वर www.google.com, जो यूआरएल http://www.google.com/ उपयोग किया जाता है की जड़ दस्तावेज़ तक पहुँचने के लिए चाहते थे अपने यूआरएल प्रस्तावना। आपने इसके बजाय दस्तावेज़ www.google.com दस्तावेज़ के लिए एक सापेक्ष यूआरएल प्रदान किया है।

+1

ग्रेट, धन्यवाद! Http: // इसे ठीक क्यों करते हैं? एचटीएमएल/जेएस या जो भी नियंत्रण यह http के लिए दिखता है और यदि यह नहीं मिलता है तो यह इसे एक सापेक्ष यूआरएल के रूप में व्याख्या करता है? –

+2

शायद एक उदाहरण मदद करेगा। 'window.open' रिश्तेदार और पूर्ण यूआरएल स्वीकार करता है। यदि आप 'http: // www.example.com/dir/foo.html' से 'window.open (" popup.html "," _blank ") को कॉल करते हैं, तो यह' http: //www.example खुल जाएगा। com/dir/popup.html'। यदि आप उसी पृष्ठ से 'window.open ("www.google.com", "_blank") कहते हैं, तो यह 'http: // www.example.com/dir/www.google.com' खुल जाएगा। ब्राउजर के पास यह जानने का कोई तरीका नहीं है कि आप वास्तव में 'http: // www.google.com/'चाहते थे जब आपने कहा था कि आप' http: // www.example.com/dir/www.google.com' चाहते हैं। – ikegami

7

आप अपने URL में http:// पहले जोड़ें करने के लिए है:

$(document).ready(function() { 
    $('#mybtn').on('click', function() { 
     window.open("http://www.google.com", '_blank'); 
    }); 
}); 

फिक्स: http://jsfiddle.net/FUYTY/4/

3

कोशिश जोड़ने http: // पहले से (देखें फिडल http://jsfiddle.net/lkritchey/FUYTY/3/)

$(document).ready(function() { 
    $('#mybtn').on('click', function() { 
     window.open("http://www.google.com", '_blank'); 
    }); 
}); 

कुछ अधिक जानकारी: यदि आप पहले से '/' शामिल करते हैं, तो यह आपकी स्ट्रिंग को रूट यूआरएल में जोड़ता है। यदि आप केवल स्ट्रिंग को सूचीबद्ध करते हैं, तो यह इसे वर्तमान पूर्ण यूआरएल में जोड़ता है। यदि आप या तो http: // या https: // शामिल करते हैं, तो यह केवल आपके स्ट्रिंग में डालने के लिए जानता है (यानी http://www.google.com)

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