জাভাস্ক্রিপ্ট: অবস্থান উইন্ডো / ট্যাবে খুলতে হবে?


389

আমার কাছে তৃতীয় পক্ষের বিকাশকারী থেকে একটি জাভাস্ক্রিপ্ট ফাইল রয়েছে। এটির একটি লিঙ্ক রয়েছে যা বর্তমান পৃষ্ঠাকে লক্ষ্য সহ প্রতিস্থাপন করে। আমি এই পৃষ্ঠাটি একটি নতুন ট্যাবে খুলতে চাই।

আমার এ পর্যন্ত যা আছে:

if (command == 'lightbox') {
 location.href="https://support.wwf.org.uk/earth_hour/index.php?type=individual";
}

যে কেউ আমাকে সাহায্য করতে পারেন?

উত্তর:


930
window.open(
  'https://support.wwf.org.uk/earth_hour/index.php?type=individual',
  '_blank' // <- This is what makes it open in a new window.
);

102
উল্লেখ করার মতো মূল্য: একটি নতুন ট্যাব বা উইন্ডো তৈরি করা হয়েছে কিনা তা ব্রাউজার (সেটিং) দ্বারা স্থির হয় ।
jAndy

4
@alex আমি এই উত্তরটি সম্পাদনা করে গুরুত্বপূর্ণ বিটটি পঠনযোগ্য করে তুলছি। আপনি যদি আমার ফর্ম্যাটিংটি অনুমোদন না করেন তবে আমি কি ইউআরএলটি সংক্ষিপ্ত করার পরামর্শ দিতে পারি যাতে দ্বিতীয় প্যারামিটারটি আনস্রোলিং অঞ্চলে ফিট করে?
ফ্রোগজ

5
@ এরিকবেস্ট এটি ভুল। "_blank"গ্যারান্টি দেয় যে উইন্ডো / ট্যাবটি নতুন হবে। অন্য যে কোনও কিছু (অন্যান্য বিশেষ নামগুলি ছাড়াও) সেই উইন্ডোটিকে নির্দিষ্ট নাম দিচ্ছে, এবং সেই লক্ষ্যটির পরবর্তী লিঙ্কগুলি উইন্ডোটিকে পুনরায় ব্যবহার করবে। jsFizz
অ্যালেক্স

2
এটি কেবল আধুনিক ব্রাউজারগুলিতে একটি পপ-আপ ব্লক বিজ্ঞপ্তি ট্রিগার করে, _blankঅ্যাঙ্কর ক্লিক মোটেও অনুকরণ করে না ।
নাথন হর্নবি

22
পপআপ ব্রাউজার দ্বারা আটকানো।
জিতেন্দ্র পাঁচোলি

24

আপনি যদি location.hrefপপআপ সমস্যা এড়াতে ব্যবহার করতে চান , আপনি খালি <a>রেফ ব্যবহার করতে পারেন এবং তারপরে এটি ক্লিক করতে জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন।

এইচটিএমএল এর মত কিছু

<a id="anchorID" href="mynewurl" target="_blank"></a>

তারপরে জাভাস্ক্রিপ্ট নীচে এটি ক্লিক করুন

document.getElementById("anchorID").click();

13
আমি এই সমাধানের জন্য আশাবাদী ছিলাম, তবে এটি এখনও পপ-আপ ব্লকটি (কমপক্ষে ক্রোমে) ট্রিগার করবে বলে মনে হচ্ছে। আমার অনুভূতি আছে যে ব্রাউজারটি সচেতন যে এটি একটি জাভাস্ক্রিপ্ট ক্লিক এবং এটিকে অন্যরকম আচরণ করে।
নাথন হর্নবি

1
ধন্যবাদ নাথান আপনি বেশ সঠিক। আপনি এখনও একটি পপ আপ ব্লক বার্তা পান। আমি ভেবেছিলাম আমি এটি নিরাময় করব। তত্ত্বগতভাবে এটি কাজ করা উচিত ছিল। অ্যান্ড্রু
অ্যান্ড্রু ফিল্ড

2
$("#anchorID")[0].click(); jquery সঙ্গে এই সমাধান ব্যবহার।
theBell

1
লল দ্য বেল, আপনি সরাসরি ডোম এলিমেন্টে অ্যাক্সেস করা থাকলে এটি jQuery নয়[0]
আন্দ্রে

7

আপনি এটি দিয়ে একটি নতুন উইন্ডোতে খুলতে পারেন window.open('https://support.wwf.org.uk/earth_hour/index.php?type=individual');। আপনি যদি এটি নতুন ট্যাবে খুলতে চান তবে দুটি পৃষ্ঠায় বর্তমান পৃষ্ঠাটি খুলুন এবং স্ক্রিপ্টটি চালিত করতে হবে যাতে বর্তমান পৃষ্ঠা এবং নতুন পৃষ্ঠা উভয়ই পাওয়া যায়।



0

উদাহরণ স্বরূপ:

    $(document).on('click','span.external-link',function(){
        var t               = $(this), 
            URL             = t.attr('data-href');        
        $('<a href="'+ URL +'" target="_blank">External Link</a>')[0].click();

    });

কাজের উদাহরণ


পপআপ ব্রাউজার দ্বারা প্রতিরোধ করা হয়।
Millar248

1
এর অর্থ হ'ল আপনার একটি অ্যাডব্লক বা অন্য কোনও কিছু যা এটিকে অবরুদ্ধ করে। ডিফল্ট আচরণটি স্বাভাবিক পরিস্থিতিতে কাজ করা উচিত
আন্দ্রে সেরেগিন

0

আপনি এই জাতীয় প্যারামিটার সহ অ্যাকশন পদ্ধতিতে কল করে একটি নতুন ট্যাব খুলতে পারেন:

   var reportDate = $("#inputDateId").val();
   var url = '@Url.Action("PrintIndex", "Callers", new {dateRequested = "findme"})';
   window.open(window.location.href = url.replace('findme', reportDate), '_blank');

প্রথম এবং দ্বিতীয় লাইন কি প্রয়োজনীয়? এটা ছাড়া কাজ করবে না reportDateএবং urlভেরিয়েবল?
মজা

আপনি প্যারামিটারটি (রিপোর্টের তারিখ) বের করতে পারেন তবে url ভার গুরুত্বপূর্ণ কারণ এতে ক্রিয়া পদ্ধতিতে কল রয়েছে।
প্রিমোশেঙ্কো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.