2009-05-11 14 views
103

मेरे पास कुछ कोड है,यूआरएल बदलें और jQuery का उपयोग कर रीडायरेक्ट करें

<form id="abc"> 
    <input type="text" id="txt" /> 
</form> 

और अब मैं इस तरह रीडायरेक्ट करना चाहता हूं,

var temp = $("#txt").val(); 
url = "http:abc.com/" + temp; 
window.location.replace(url); 
or 
window.location(url); 

क्या इसे हल करने के लिए jQuery में वैसे भी है? यह अभी भी मुझे url = http://abc.com है।

+0

धन्यवाद के रूप में इस्तेमाल! अब मुझे अभी भी पता नहीं है कि window.location और window.location.replace के बीच क्या अंतर है। मेरे उदाहरण में मुझे बस अपने पृष्ठ पर यूआरएल पोस्ट करने की आवश्यकता है: http://abc.com/abc एबीसी के साथ अपने डेटाबेस में खोज करने के लिए एबीसी प्राप्त करने के लिए क्या उपयोगकर्ता टाइपिंग में डालता है और एंटर या बटन दबाता है लेकिन वे हमेशा http://abc.com?name=abc वापस करें, इसलिए मुझे लगता है कि मैं सबमिट करने के लिए सबमिट ईवेंट में ट्रिगर कर सकता हूं और अपना यूआरएल बदल सकता हूं जो मैं चाहता हूं लेकिन वे अभी भी कुछ नहीं करते हैं। वैसे भी, वैसे भी धन्यवाद! – gacon

+3

मैंने विंडो.लोकेशन और window.location.replace के बीच अंतर समझाया: http://stackoverflow.com/questions/846954/change-url-and-redirect-in-jquery/847130#847130 –

उत्तर

38

आप सच कहता हूं, मैं अभी भी है कि तुम क्या जरूरत है नहीं मिलता है, लेकिन

window.location(url); 

होना चाहिए

window.location = url; 

window.location संदर्भ पर एक खोज आपको बताएगा कि।

16

jQuery के पास इसके लिए कोई विकल्प नहीं है, न ही इसमें एक होना चाहिए। यह पूरी तरह से वैध जावास्क्रिप्ट है और इसके लिए jQuery के लिए रैपर फ़ंक्शन प्रदान करने का कोई कारण नहीं है।

jQuery जावास्क्रिप्ट के शीर्ष पर सिर्फ एक लाइब्रेरी है, भले ही आप jQuery का उपयोग करते हैं, फिर भी आप सामान्य जावास्क्रिप्ट का उपयोग कर सकते हैं।

Btw विंडो स्थान एक समारोह लेकिन एक प्रॉपर्टी में आप इस तरह स्थापित करना चाहिए नहीं है:

window.location = url; 
+0

jQuery का दावा करने के लिए वोट नीचे इसके लिए कोई विधि नहीं है (भले ही यह अनावश्यक ओवरकिल है और इसकी अनुशंसा नहीं की जानी चाहिए) $ jq (window) .attr ("location", "http://yourdomain.com"); या $ (स्थान) .attr ('href', यूआरएल); – rob

+6

उस डाउनवोट को पूर्ववत करने के लिए उपरोक्त। पिम की प्रतिक्रिया आसानी से पढ़ सकती है "इसके लिए jQuery में कोई विशिष्ट विधि नहीं है।" शब्दावली अर्थशास्त्र पर डाउनवोट करने के लिए उस विशेषाधिकार का दुरुपयोग है। –

297

अन्य उत्तर में उल्लेख किया है, यदि आप ऐसा करने jQuery जरूरत नहीं है, आप केवल मानक गुणों का उपयोग कर सकते हैं।

हालांकि, ऐसा लगता है कि आपको window.location.replace(url) और window.location = url के बीच का अंतर नहीं लगता है।

  1. window.location.replace(url) पता बार में वर्तमान स्थान को एक नए द्वारा प्रतिस्थापित करता है। वह पृष्ठ जो फ़ंक्शन को कॉल कर रहा था, ब्राउज़र इतिहास में शामिल नहीं किया जाएगा। इसलिए, नए स्थान पर, आपके ब्राउज़र में बैक बटन पर क्लिक करने से आप उस पृष्ठ पर वापस जा सकते हैं, जिसे आप रीडायरेक्टिंग जावास्क्रिप्ट वाले दस्तावेज़ पर जाने से पहले देख रहे थे।
  2. window.location = url नए स्थान पर रीडायरेक्ट करता है। इस नए पृष्ठ पर, आपके ब्राउज़र में बैक बटन रीडायरेक्टिंग जावास्क्रिप्ट वाले मूल पृष्ठ पर इंगित करेगा।

बेशक, दोनों के पास उनके उपयोग के मामले हैं, लेकिन ऐसा लगता है कि इस मामले में आपको बाद वाले के साथ रहना चाहिए।

पुनश्च: आप शायद दो स्लैश http: के बाद आपकी जावास्क्रिप्ट की लाइन 2 पर भूल गया:

url = "http://abc.com/" + temp; 
+34

+1 के विवरण के लिए 'window.location.replace' –

+5

लेकिन बहुत सही होने के लिए आप window.location.href बजाय विंडो स्थान के स्थापित करना चाहिए। हालांकि आजकल दोनों काम एक ऑब्जेक्ट है (और निश्चित रूप से एक प्राचीन आईई संस्करण में एक स्ट्रिंग को असाइन करने के लिए असमर्थित ...) – Victor

+1

@ विक्टर [उद्धरण वांछित] –

2

इस प्रयास करें ...

$("#abc").attr("action", "/yourapp/" + temp).submit(); 

इसका क्या अर्थ है:

एक विधि खोज id "abc" के साथ, इसे "क्रिया" नामक attribute बदलें और फिर इसे सबमिट करें ...

यह मेरे लिए काम करता है ... !!!

+0

मैं इसे बाद में कोशिश करूंगा! – gacon

+0

लॉल, यह कुछ मजाकिया एस है! मुझे हालांकि विचार पसंद है। रचनात्मक होने के लिए अंक! –

5
var temp="/yourapp/"; 
$(location).attr('href','http://abcd.com'+temp); 

इस प्रयास करें ... आप सभी बहुत एक वैकल्पिक

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