ইউআরএল পরিবর্তন করুন এবং jQuery ব্যবহার করে পুনঃনির্দেশ করুন


132

আমার মতো কিছু কোড আছে,

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

এবং এখন আমি এটির মতো পুনর্নির্দেশ করতে চাই,

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

এটিকে সমাধান করার জন্য কি jQuery তে কোনও উপায় আছে? এটি এখনও আমাকে দেয় url = http://example.com


আপনারা সবাইকে অনেক ধন্যবাদ! উইন্ডো.লোকেশন এবং উইন্ডো.লোকেশন.রেপ্লেসের মধ্যে কী পার্থক্য তা এখনও আমি জানি না। আমার উদাহরণে আমার ঠিক তেমনভাবে আমার পৃষ্ঠায় ইউআরএল পোস্ট করতে হবে: এবিসি দিয়ে আমার ডাটাবেসে অনুসন্ধান করার জন্য এবিসি / অ্যাবসি পেতে অ্যাবসি ডটকমকে ব্যবহারকারী লিখতে লিখুন এবং এন্টার বা বোতাম টিপুন তবে তারা সর্বদা abc.com ফিরে আসে ? নাম = এবিসি তাই আমি মনে করি যে আমি আমার ইভেন্টটি পুনর্নির্দেশ করতে এবং আমার ইউআরএলটি যা চাই তা পরিবর্তন করতে জমা দেওয়ার ইভেন্টটিতে ট্রিগার করতে পারি তবে তারা এখনও কিছুই করে না। এটাই সব, আপনাকে আবারও ধন্যবাদ!
গ্যাকন

3
: আমি এখানে দ্বারা window.location এবং window.location.replace মধ্যে পার্থক্য ব্যাখ্যা stackoverflow.com/questions/846954/...
ম্যাথিয়াস Bynens

উত্তর:


343

অন্যান্য উত্তরে যেমন উল্লেখ করা হয়েছে, এটি করার জন্য আপনার জিকিউরির দরকার নেই; আপনি কেবল স্ট্যান্ডার্ড বৈশিষ্ট্য ব্যবহার করতে পারেন।

তবে, মনে হয় আপনি window.location.replace(url)এবং এর মধ্যে পার্থক্যটি জানেন না window.location = url

  1. window.location.replace(url)ঠিকানা বারে বর্তমান অবস্থানটিকে নতুন করে প্রতিস্থাপন করে। যে পৃষ্ঠাটি ফাংশনটি কল করছিল, সেটিকে ব্রাউজারের ইতিহাসে অন্তর্ভুক্ত করা হবে না। সুতরাং, নতুন অবস্থানে, আপনার ব্রাউজারের পিছনে বোতামটি ক্লিক করা আপনাকে পুনরায়নির্দেশক জাভাস্ক্রিপ্টযুক্ত দস্তাবেজটি দেখার আগে আপনি যে পৃষ্ঠাটি দেখছিলেন সেখানে ফিরে যেতে বাধ্য করবে।
  2. window.location = urlনতুন জায়গায় পুনঃনির্দেশ করে। এই নতুন পৃষ্ঠায়, আপনার ব্রাউজারের পিছনের বোতামটি পুনর্নির্দেশক জাভাস্ক্রিপ্টযুক্ত মূল পৃষ্ঠাটিতে নির্দেশ করবে।

অবশ্যই, উভয়ের ক্ষেত্রে তাদের ব্যবহারের কেস রয়েছে তবে এটি আমার কাছে মনে হয় এই ক্ষেত্রে আপনার সাথে পরে থাকা উচিত।

পিএস: আপনি সম্ভবত http:আপনার জাভাস্ক্রিপ্টের 2 লাইনে দুটি স্ল্যাশ ভুলে গেছেন :

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

5
তবে খুব সঠিক হওয়ার জন্য আপনার উইন্ডো.লোকেশনের পরিবর্তে উইন্ডো.লোকেশন.ইরেফ সেট করা উচিত। যদিও দু'জনেই আজকাল কাজ করেন তবে এটি একটি অবজেক্ট (এবং অবশ্যই কোনও প্রাচীন আইই সংস্করণে স্ট্রিং বরাদ্দ করা অসমর্থিত ...)
ভিক্টর

1
@ ভিক্টর [উদ্ধৃতি প্রয়োজন]
ম্যাথিয়াস বাইনেস

1
। @Victor যে কোনো প্রাচীন ইন্টারনেট সংস্করণ যেখানে মধ্যে @ bobince এর মন্তব্য এই বিরতি সঠিক তালিকা প্রস্তুত না stackoverflow.com/a/10016109/96656#comment18225061_10016109
ম্যাথিয়াস Bynens

বিয়োগ 1। পর্যাপ্ত jQuery নয়
বরুণাগু

41

আপনাকে সত্য বলি, আপনার যা প্রয়োজন তা আমি এখনও পাই না, তবে

window.location(url);

হতে হবে

window.location = url;

উইন্ডো.লোকশন রেফারেন্সে একটি অনুসন্ধান আপনাকে তা বলবে।


18

jQuery এর জন্য বিকল্প নেই, না এটির একটিও হওয়া উচিত। এটি পুরোপুরি বৈধ জাভাস্ক্রিপ্ট এবং এর জন্য র‍্যাপার ফাংশন সরবরাহ করার জন্য jQuery এর কোনও কারণ নেই।

jQuery জাভাস্ক্রিপ্টের শীর্ষে কেবল একটি গ্রন্থাগার, আপনি jQuery ব্যবহার করলেও আপনি এখনও সাধারণ জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন।

বিটিডাব্লু উইন্ডো.লোকেশন কোনও ফাংশন নয় বরং এমন একটি সম্পত্তি যা আপনাকে এই জাতীয়ভাবে সেট করা উচিত:

window.location = url;

জকিউয়ারি দাবি করার জন্য ডাউন ভোটের পক্ষে এর জন্য কোনও পদ্ধতি নেই (এটি অপ্রয়োজনীয় ওভারকিল এবং এটি সুপারিশ করা উচিত নয়) $ জকিউ (উইন্ডো) .attr ("অবস্থান", "yourdomain.com " ); বা $ (অবস্থান) .attr ('href', url);
ছিনতাই

9
উক্ত ডাউনভোটটিকে পূর্বাবস্থায় ফেরাতে উত্সাহিত। পিমের প্রতিক্রিয়া সহজেই পড়তে পারে "এর জন্য jQuery এ কোনও নির্দিষ্ট পদ্ধতি নেই।" শব্দাবলীর শব্দার্থবিজ্ঞানকে হ্রাস করা সেই সুযোগের অপব্যবহার।
নাইজেল অ্যাঞ্জেল

উত্সাহিত কারণ আপনি জানেন ... এটি ঠিক "এর জন্য jQuery তে কোনও নির্দিষ্ট পদ্ধতি নেই" ", আপনি কেন এমন কুৎসিত সমাধান পেতে চান: $ জকিউ (উইন্ডো) .attr (" অবস্থান "," আপনারডোমেন)। কম "); আপনার যখন উইন্ডো.লোকেশন = url এর মতো কিছু থাকতে পারে;
রোডল্ফো আবারকা

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

এটি চেষ্টা করুন ... বিকল্প হিসাবে ব্যবহৃত


3

এটা চেষ্টা কর...

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

এর মানে কি:

id"Abc" দিয়ে একটি ফর্ম সন্ধান করুন , এর attributeনাম "ক্রিয়া" পরিবর্তন করুন এবং তারপরে এটি জমা দিন ...

এটি আমার জন্য কাজ করে ... !!!


1
হ্যাঁ, কিছু মজার এস! আমি যদিও ধারণা পছন্দ। সৃজনশীল হওয়ার জন্য পয়েন্টস!
এরিক বিশার্ড

-2

আপনি jquery ছাড়াই এটি সহজ করতে পারেন

location = "https://example.com/" + txt.value


এটি কাজ করে না, এবং আমি কীভাবে এটি করতে পারি তা দেখতে পাচ্ছি না। অবস্থান বিশ্বব্যাপী নয়। window.location হয়। সম্পাদনা: হ্যাঁ যাচাই করা হয়েছে। এটি কাজ করে না, অন্তত ক্রোমে নয়। দ্বারা window.location আপনার উদাহরণ আপডেট বিবেচনা করুন
Shayne

আজব - আমার ক্রোম, ফায়ারফক্স, সাফারি এ কাজ করে - অবস্থানটি বিশ্বব্যাপী সম্পত্তি - যেমন আমি যখন ক্রোম কনসোল টাইপ করি: location = 'https://google.com'তখন এটি পৃষ্ঠা পরিবর্তন করে - আপনি অন্যান্য ব্রাউজারগুলিতে চেষ্টা করেন?
কামিল কিয়েসজেউস্কি

@ শায়ইন আপনি টাইপ করার সময় thisএবং this.locationকনসোলে - কী দেখতে পাচ্ছেন?
কামিল কিয়েসজেউস্কি

this.location কেবল তখনই কাজ করে যখন "এটি" উইন্ডোটি উল্লেখ করে। যা খুব কমই কেস হতে চলেছে। স্পষ্টত সর্বদা ইমপ্লিকেটের চেয়ে ভাল, বিশেষত যদি আপনি যখন আপনার কোডটি পোর্টেবল বা পুনরায় ব্যবহারযোগ্য না করে অবাক হতে না চান
শায়নে

হ্যাঁ আপনি ঠিক বলেছেন - তবে আমি ভাবছি: কেন আপনার ব্রাউজারে অবজেক্ট (এবং উপরে স্নিপেট কাজ করে না) thisবোঝায় windowনা? (ব্রাউজারগুলিতে বৈশ্বিক প্রসঙ্গে এটি উইন্ডোজ অবজেক্টে সেট করা উচিত )
কামিল কিয়েসজেউস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.