জাভাস্ক্রিপ্ট একটি নতুন উইন্ডোতে খুলবে, ট্যাবে নয়


364

আমার কাছে একটি নির্বাচন বাক্স রয়েছে যা কল করে window.open(url)যখন কোনও আইটেম নির্বাচন করা হয়। ফায়ারফক্স ডিফল্টভাবে নতুন ট্যাবে পৃষ্ঠাটি খুলবে। যাইহোক, আমি পৃষ্ঠাটি একটি নতুন উইন্ডোতে খুলতে চাই, একটি নতুন ট্যাব নয়।

আমি কীভাবে এটি সম্পাদন করতে পারি?




উত্তর:


456

প্রস্থ / উচ্চতা সহ উইন্ডোটিকে একটি 'স্পেস' পরামিতি দিন। সমস্ত সম্ভাব্য বিকল্পের জন্য এখানে দেখুন ।

window.open(url, windowName, "height=200,width=200");

আপনি যখন প্রস্থ / উচ্চতা নির্দিষ্ট করেন, এটি এটি একটি ট্যাবের পরিবর্তে একটি নতুন উইন্ডোতে খুলবে।


5
ভালো পরামর্শ. আমি মনে করি অপেরা যদিও এটি এখনও একটি ট্যাবে খুলবে :)।
কেভিন টিঘে

7
আইই 6, এফএফ 3.6, ক্রোম 9.0
জেমস ওয়েস্টগেট

3
এফএফ 11.0 এ আর কোনও কাজ করে না, আমার প্রশ্নটি দেখুন ! @ জেমস
টিএমএস

14
আজকের ব্রাউজারগুলিতে কাজ করে না। ডিফল্টরূপে তারা সবাই বর্তমান উইন্ডোর একটি নতুন ট্যাবে একটি নতুন উইন্ডো খোলেন। এটি ব্রাউজার বিকল্পগুলির উপরও নির্ভর করে। আপনি জাভাস্ক্রিপ্ট ব্যবহার করে এটি নিয়ন্ত্রণ করতে পারবেন না।
পাভেল হোদেক

3
এটি আপনি "উচ্চতা = 200, প্রস্থ = 200" রাখার সত্য নয় যা একটি নতুন উইন্ডোতে খোলার কাজ করে। অতিরিক্ত প্যারামিটার (অবস্থান, স্থিতি ইত্যাদি .... এটি কোনও বিষয় নয়) রাখার জন্য কেবল এটাই সত্য
পিটার

110

আপনাকে উচ্চতা ব্যবহার করার দরকার নেই, কেবল আপনি _blankযেটি ব্যবহার করছেন তা নিশ্চিত করে নিন, এটি ছাড়া এটি একটি নতুন ট্যাবে খোলে।

খালি উইন্ডোর জন্য:

window.open('', '_blank', 'toolbar=0,location=0,menubar=0');

একটি নির্দিষ্ট ইউআরএল জন্য:

window.open('http://www.google.com', '_blank', 'toolbar=0,location=0,menubar=0');

3
তবে আমি যদি এটির একটি নামও দিতে চাই?
অদিতি

কমপক্ষে ক্রোমে, location=0যখন জেএসটি একটি বোতাম বা অ্যাঙ্কর উপাদান থেকে ডাকা হয় তখন প্রয়োজনীয়।
ওহাদ স্নাইডার

নিখুঁতভাবে কাজ। ফায়ারফক্সের পাশাপাশি অবস্থান = 0 অন্তর্ভুক্ত করতে হয়েছিল।
রিক জেমস

@ এনব্রাড আপনি কি '_ব্ল্যাঙ্ক' অংশ সম্পর্কে নিশ্চিত? কারণ আমি যতক্ষণ জানি আমি _ _ বলঙ্ক 'ডিফল্ট মান যখন আমরা অন্য কোনও মান নির্দিষ্ট করে না specify আপনার ক্ষেত্রে, নতুন ট্যাবের পরিবর্তে একটি নতুন উইন্ডো খোলার জন্য উইন্ডো.ওপেন ফাংশনে তৃতীয় প্যারামিটার সরবরাহ করার জন্য কিছু করতে হবে। আপনার ক্ষেত্রে এটি 'সরঞ্জামদণ্ড = 0, অবস্থান = 0, মেনুবার = 0'। আপনি এই তৃতীয় প্যারামিটারটি বাদ দিয়ে এবং '_blank' সেখানে ২ য় প্যারামিটার হিসাবে রেখে যাচাই করতে পারেন।
ব্যবহারকারী1451111

ফায়ারফক্স 76 76 এবং ইন্টারনেট এক্সপ্লোরার ১১ এর মতো আধুনিক ব্রাউজারগুলিতে পুরোপুরি কাজ করে The location=0পরামিতিগুলিতে টিপ যোগ হচ্ছে । আমি _blankলক্ষ্যটি ব্যবহারের পরিবর্তে উইন্ডোটির নামকরণের পরামর্শ দেব , যাতে পপআপ খোলার উপাদানটি ব্যবহারকারী কয়েকবার ক্লিক করে এবং focus()ইতিমধ্যে খোলা window.open('http://stackoverflow.com', 'Stack_Overflow','location=0').focus();
পপআপটির

82

আমি ভুল হতে পারি, তবে যা আমি বুঝতে পারি তা থেকে এটি ব্যবহারকারীর ব্রাউজারের পছন্দগুলি দ্বারা নিয়ন্ত্রিত হয় এবং আমি বিশ্বাস করি না যে এটি অগ্রাহ্য হতে পারে।


1
আপনি ঠিক বলেছেন, ব্যবহারকারী "সম্পর্কে: কনফিগারেশন" পছন্দ "ব্রাউজার.tabs.opentabfor.windowopen" সত্য হিসাবে সেট করতে পারেন, তবে এটি একটি বিশ্বব্যাপী সেটিংস এবং আমি আমাদের ব্যবহারকারীদের ব্রাউজারগুলির বৈশ্বিক আচরণ পরিবর্তন করতে চাই না;)
আদম

45
আমি আপনাকে বলেছিলাম যে আমার কোড রয়েছে যা কাজ করে। আমি এটি ফায়ারব্যাগ কনসোলে টাইপ করেছি: উইন্ডো.ওপেন ("", "poop", "উচ্চতা = 200, প্রস্থ = 200, মডেল = হ্যাঁ, সর্বদা রাইজড = হ্যাঁ"); এবং কি অনুমান??? এটা কাজ !!!!!!

24
হ্যাঁ এটি কাজ করে তবে এটি কিছুটা হ্যাক বলে মনে হচ্ছে। ফায়ারফক্স এমনভাবে লেখা হয়েছে যে একটি নতুন উইন্ডো বনাম ট্যাব খোলাই একটি ব্রাউজারের পছন্দ, জাভাস্ক্রিপ্টের পছন্দ নয়। সুতরাং এটি সম্ভাব্য যে আপনার পরামর্শটি ফায়ার ফক্সের পরবর্তী সংস্করণে একই কাজ করবে না। আমি বরং হ্যাকের উপর নির্ভর করব না।
আদম

2
এবং স্পষ্ট করে বলতে গেলে, আমি এটি একটি জাভাস্ক্রিপ্ট হ্যাক মানে না উইন্ডোর উচ্চতা এবং প্রস্থ যুক্ত করা পরিষ্কারভাবে জেএস উইন্ডো.ওপেন পদ্ধতির বৈশিষ্ট্য ( ডাব্লু 3 স্কুলস / এইচটিএমএল ডম / মেট_উইন_ওপেন.এএসপি ) মানে ফায়ারফক্সের উদ্দেশ্যমূলক আচরণের কৌশলটি হ্যাক করার অর্থ হ্যাক।
আদম

2
আমি সত্যিই এটিকে হ্যাক বলব না, প্রতি সে। আপনি আসলে যে আচরণটি করতে চান তা নিয়ে কেবল আপস করছেন এবং পরিবর্তে এটি বাস্তবায়ন করুন।
ম্যাচু

15

চেষ্টা করুন:

window.open("", [window name], "height=XXX,width=XXX,modal=yes,alwaysRaised=yes");

আমার কিছু কোড রয়েছে যা আপনার যা বলে তা করে তবে এটিতে অনেকগুলি পরামিতি রয়েছে। আমি মনে করি এগুলি ন্যূনতম ন্যূনতম, যদি এটি কাজ না করে তবে আমাকে জানান, আমি বাকী পোস্ট করব।


এটি FF 31 এবং Chrome 36 এ কেবলমাত্র "মডেল = হ্যাঁ" বিকল্পটি ব্যবহার করে কাজ করে। সমস্ত অপশন পাশাপাশি কাজ নির্দিষ্ট। আমার এফএফ পছন্দগুলি পরীক্ষা করে "তার পরিবর্তে নতুন ট্যাবগুলিতে নতুন উইন্ডো খুলুন" আছে। খোলা বিকল্প ছাড়া উইন্ডো নতুন ট্যাবে খোলে।
ক্লিন্ট পাচল

আরও কিছু পরীক্ষার পরে, এটি প্রায় কোনও প্যারামিটারগুলি মনে হয় - যতক্ষণ না সেখানে অন্তত একটি থাকে - কোনও ট্যাবটির পরিবর্তে একটি নতুন উইন্ডো খুলবে। উদাহরণস্বরূপ, কেবলমাত্র "শীর্ষ = 0" এমনকি এফএফ 31 এবং Chrome 36 এ কাজ করে This এটি cwm উইন্ডো ম্যানেজার ব্যবহার করে ওপেনবিএসডি-তে রয়েছে। সুতরাং ফলাফল বিভিন্ন হতে পারে।
ক্লিন্ট পাচল

আমি কি জানতে পারি, [উইন্ডোর নাম] কী?
পিসি

10

ঠিক আছে, অনেক পরীক্ষা করার পরে, এখানে আমার উপসংহার:

আপনি যখন সঞ্চালন:

     window.open('www.yourdomain.tld','_blank');
     window.open('www.yourdomain.tld','myWindow');

বা আপনি গন্তব্য ক্ষেত্রটিতে যা কিছু রাখুন না কেন এটি কিছুই পরিবর্তন করবে না: নতুন পৃষ্ঠাটি একটি নতুন ট্যাবে খোলা হবে (সুতরাং ব্যবহারকারীর পছন্দের উপর নির্ভর করুন)

আপনি যদি পৃষ্ঠাটি একটি নতুন "বাস্তব" উইন্ডোতে খুলতে চান তবে আপনাকে অতিরিক্ত প্যারামিটার লাগাতে হবে। ভালো লেগেছে:

window.open('www.yourdomain.tld', 'mywindow','location=1,status=1,scrollbars=1, resizable=1, directories=1, toolbar=1, titlebar=1');

পরীক্ষার পরে, আপনি যে অতিরিক্ত প্যারামিটারটি ব্যবহার করেন তা মনে হয় না, এটি 'সত্যই গুরুত্বপূর্ণ না: আপনি "এই প্যারামিটার" বা "এটি অন্য একটি" রাখেন যা নতুন "আসল উইন্ডো" তৈরি করে না তবে সেখানে নতুন প্যারামিটার রয়েছে )।

তবে কিছু বিভ্রান্ত এবং অনেক ভুল উত্তর ব্যাখ্যা করতে পারে:

এই:

 win1 = window.open('myurl1', 'ID_WIN');
 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');

এবং এই:

 win2 = window.open('myurl2', 'ID_WIN', 'location=1,status=1,scrollbars=1');
 win1 = window.open('myurl1', 'ID_WIN');

একই ফলাফল দেবে না।

প্রথম ক্ষেত্রে, অতিরিক্ত পরামিতি ছাড়াই আপনি প্রথম পৃষ্ঠাটি খোলার সাথে সাথে এটি একটি নতুন ট্যাবে খুলবে । আর এই ক্ষেত্রে, দ্বিতীয় কল এই মধ্যে খোলা হবে ট্যাব আপনি যে নামটি দিতে কারণে।

দ্বিতীয় ক্ষেত্রে, অতিরিক্ত পরামিতি দিয়ে যেমন আপনার প্রথম কল করা হয় , পৃষ্ঠাটি একটি নতুন " বাস্তব উইন্ডো " তে খোলা হবে । এবং সেই ক্ষেত্রে, অতিরিক্ত পরামিতি ছাড়াই দ্বিতীয় কল করা হলেও এটি এই নতুন " আসল উইন্ডো " তেও খোলা হবে ... তবে একই ট্যাব!

এর অর্থ হ'ল প্রথম কলটি গুরুত্বপূর্ণ কারণ এটি পৃষ্ঠাটি কোথায় রাখবেন তা সিদ্ধান্ত নিয়েছে।


এই উত্তরের প্রচুর ++++ থাকা উচিত
মিচ ভ্যানডুইন

9

আপনার দরকার নেই। ব্যবহারকারীর পছন্দসই পছন্দগুলি থাকতে দিন।

ফায়ারফক্স এটি ডিফল্টরূপে করে কারণ একটি নতুন উইন্ডোতে পৃষ্ঠা খোলা বিরক্তিকর এবং কোনও পৃষ্ঠায় কখনও তা করার অনুমতি দেওয়া উচিত নয় যদি এটি ব্যবহারকারীর পছন্দসই হয় না। (আপনি যদি সেভাবে সেট করেন তবে ফায়ারফক্স আপনাকে নতুন উইন্ডোতে ট্যাবগুলি খুলতে দেয়)


31
আপনি খুব ভুল। এবং যাইহোক, "আপনার প্রয়োজন হবে না" বলা উপযুক্ত নয়, বিশেষত এটি যদি বসের কিছু হয়

8
চেষ্টা করুন এবং মন্তব্যগুলি ব্যবহারিক এবং সহায়ক রাখতে দিন। অপমান না করে আমরা একমত হতে পারি না।
আদম

17
@ থিমন_ন_ভিস্তা: আপনার মনিবকে বোঝানো আপনার দায়িত্ব। আপনার সংস্থা ডিজাইনের সমস্যাগুলি সমাধান করার জন্য আপনাকে দায়িত্ব দিয়েছে। এর মধ্যে রয়েছে ভুল নকশার ধারণাগুলি নির্দেশ করা।
ইফ্রেম

2
আসলেই সত্য. স্ক্রিনটি ব্যবহারকারীর অন্তর্ভুক্ত এবং অন্য কারও নয়।
ক্রিস্টোফার ক্রিউটজিগ

12
এটি পপআপ বা ট্যাব চয়ন করার জন্য ডিজাইনারের রাজ্যে রয়েছে। আমি যখন একজন ব্যবহারকারী যা সর্বদা ট্যাব পছন্দ করে, আমি বুঝতে পারি যে কখনও কখনও ডিজাইনটি সত্যিই একটি পপআপের জন্য কল করে বা সত্যিই একটি ট্যাব কল করে। এটি সম্ভব করার জন্য এটি প্রোগ্রামারের ক্ষেত্রের মধ্যে থাকা উচিত। দার্শনিক পার্থক্য একপাশে রেখে, এই ধরণের মন্তব্য একটি প্রোগ্রামিং রেফারেন্স সাইটের জন্য সম্পূর্ণ অনুপযুক্ত। এবং এই ক্ষেত্রে, এটি "আমার উচিত নয়?" প্রশ্ন। এটি "আমি কীভাবে করব?"
jbenet

9

আপনি নিম্নলিখিত ফাংশন চেষ্টা করতে পারেন:

<script type="text/javascript">
function open(url)
{
  var popup = window.open(url, "_blank", "width=200, height=200") ;
  popup.location = URL;
}
</script>

কার্যকর করার জন্য এইচটিএমএল কোড:

<a href="#" onclick="open('http://www.google.com')">google search</a>

2
এর উদ্দেশ্য কী popup.location = URL;? window.open()কল সঠিক URL এ এটি খোলার উচিত, এবং আপনার কোড উদাহরণে, URLসংজ্ঞায়িত করা হয় না তাই এটি পরীক্ষামূলক (এবং ব্যাপকভাবে সমর্থন) ফিরে পড়ে যাচ্ছে URL টি বস্তু । এটির জন্য এটি বিতর্কযোগ্য হিসাবে ব্যবহার করার সময়, আমি আগ্রহী এখানে কীভাবে এটির ব্যবহারের জন্য প্রেরণাগুলি রয়েছে?
কেন

সলিড উত্তর এবং কীভাবে অবস্থানটি অ সম্পাদনযোগ্য করে তুলতে হবে তা শিখিয়েছে। ধন্যবাদ
ভার্চুয়ালপ্রডজি

6

কীটি হল প্যারামিটারগুলি:

আপনি যদি প্রদান পরামিতি [height = "", width = ""], তাহলে এটি নতুন উইন্ডো খুলবে।

আপনি যদি প্যারামিটারগুলি সরবরাহ না করেন তবে এটি নতুন ট্যাবে খুলবে।

ক্রোম এবং ফায়ারফক্সে পরীক্ষিত


1
নিউউইন = উইন্ডো.ওপেন ('test.aspx', '', ''); ক্রোমে পরীক্ষিত: 26
মুনিআর

5

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

সুতরাং, এটি আমার নতুন কল:

 window.open(url, windowName, '');

মূল পোস্টারটি কি নতুন উইন্ডোতে পপআপগুলি খোলার চেষ্টা করছে না? এছাড়াও, আইই ১১-তে, আপনি যে কোড স্নিপেট দিয়েছেন তা ব্যবহারকারীর ব্রাউজারের পছন্দ অনুসারে একটি নতুন উইন্ডো বা ট্যাব খুলবে।

4

যে পদ্ধতি চেষ্টা করুন .....

function popitup(url) {
       //alert(url);
       newwindow=window.open("http://www.zeeshanakhter.com","_blank","toolbar=yes,scrollbars=yes, resizable=yes, top=500, left=500, width=400, height=400");
       newwindow.moveTo(350,150);
   if (window.focus) 
          {
             newwindow.focus()
          }
   return false;
  }

3

আমার জন্য সমাধানটি ছিল

"location=0"

3 য় প্যারামিটারে। সর্বশেষ FF / Chrome এবং IE11 এর একটি পুরানো সংস্করণে পরীক্ষিত

আমি ব্যবহার করি পুরো পদ্ধতি কলটি নীচে রয়েছে (যেমন আমি একটি পরিবর্তনশীল প্রস্থ ব্যবহার করতে চাই):

window.open(url, "window" + id, 'toolbar=0,location=0,scrollbars=1,statusbar=1,menubar=0,resizable=1,width=' + width + ',height=800,left=100,top=50');

2

আমি স্রেফ আইই (11) এবং ক্রোম (54.0.2794.1 ক্যানারি সিজাইএসান) দিয়ে এটি চেষ্টা করেছি:

window.open(url, "_blank", "x=y")

... এবং এটি একটি নতুন উইন্ডোতে খোলা হয়েছে।

যার অর্থ হ'ল ক্লিন্ট পাচল ঠিক তখনই ছিলেন যখন তিনি বলেছিলেন যে কোনও একটি প্যারামিটার সরবরাহ করা নতুন উইন্ডোটি খোলার কারণ হবে।

- এবং সম্ভবত এটি একটি বৈধ প্যারামিটার হতে হবে না!

(ওয়াইএমএমভি - যেমনটি আমি বলেছি, আমি এটি কেবল দুটি জায়গায় পরীক্ষা করেছি ... এবং পরবর্তী আপগ্রেড ফলাফল কোনওভাবেই বাতিল করতে পারে)

ইটিএ: আমি কেবল লক্ষ্য করেছি, যদিও - আইই তে, উইন্ডোটির কোনও সজ্জা নেই।


1

এখানে উত্তর । কিন্তু রেফারেন্সের জন্য এটি আবার পোস্ট।

window.open()এটি যদি সত্যিকারের ক্লিক ইভেন্টে না ঘটে তবে নতুন ট্যাবে খুলবে না। প্রদত্ত উদাহরণে ইউআরএলটি আসল ক্লিক ইভেন্টে খোলা হচ্ছে। এই ব্রাউজারে ব্যবহারকারীদের উপযুক্ত সেটিংস সরবরাহ করে কাজ করবে।

<a class="link">Link</a>
<script  type="text/javascript">
     $("a.link").on("click",function(){
         window.open('www.yourdomain.com','_blank');
     });
</script>

একইভাবে, আপনি যদি ক্লিক ফাংশনের মধ্যে একটি এজাক্স কল করার চেষ্টা করছেন এবং সাফল্যের জন্য একটি উইন্ডো খুলতে চান, আপনি async : falseবিকল্প সেট সহ এজ্যাক্স কল করছেন তা নিশ্চিত করুন ।


1

আমি মনে করি এটির এইচটিএমএল লক্ষ্য বৈশিষ্ট্যগুলির সমস্যা নয় তবে আপনি "ফায়ারফক্সের অধীনে" ট্যাব "ট্যাবটিতে বিকল্প" মেনুতে "পরিবর্তে একটি নতুন ট্যাবে এনডাব্লু উইন্ডোটি চেক করেছেন। এটি পরীক্ষা করে দেখুন এবং আবার চেষ্টা করুন।

এখানে চিত্র বর্ণনা লিখুন


0

আমার এই একই প্রশ্ন ছিল তবে এটির তুলনামূলক সহজ সমাধান খুঁজে পেয়েছি।

জাভাস্ক্রিপ্টে আমি window.opener !=null;উইন্ডোটি পপ আপ কিনা তা নির্ধারণের জন্য যাচাই করছিলাম । আপনি যদি নিজের সাইটটিতে যে উইন্ডোটি রেন্ডার করা হচ্ছে তা যদি একটি পপ আপ হয় তা নির্ধারণ করতে আপনি যদি কিছু অনুরূপ সনাক্তকরণ কোড ব্যবহার করছেন তবে আপনি যখন নতুন উইন্ডো জাভাস্ক্রিপ্ট ব্যবহার করে একটি "নতুন" উইন্ডো খুলতে চান আপনি সহজেই "এটি বন্ধ" করতে পারবেন ।

এটিকে আপনার পৃষ্ঠার শীর্ষে রাখুন আপনি সর্বদা একটি "নতুন" উইন্ডো হতে চান ।

<script type="text/javascript">
    window.opener=null;
</script>

আমি এটি আমার সাইটের লগ ইন পৃষ্ঠায় ব্যবহার করি যাতে ব্যবহারকারীরা যদি আমার সাইটে নেভিগেট করতে পপ আপ উইন্ডো ব্যবহার করেন তবে তারা পপ-আপ আচরণটি পাবেন না।

এমনকি আপনি এমন একটি সাধারণ পুনর্নির্দেশ পৃষ্ঠা তৈরি করতে পারেন যা এটি করে এবং তারপরে আপনি এটি দিয়েছিলেন এমন URL এ চলে যায়। কিছুটা এইরকম,

মূল পৃষ্ঠায় জাভাস্ক্রিপ্ট:

window.open("MyRedirect.html?URL="+URL, "_blank");

এবং তারপরে এখান থেকে কিছুটা জাভাস্ক্রিপ্ট ব্যবহার করে আপনি ইউআরএল পেতে এবং এটিতে পুনর্নির্দেশ করতে পারেন।

পুনঃনির্দেশ পৃষ্ঠায় জাভাস্ক্রিপ্ট:

 <script type="text/javascript">
        window.opener=null;

    function getSearchParameters() {
          var prmstr = window.location.search.substr(1);
          return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
    }

    function transformToAssocArray( prmstr ) {
        var params = {};
        var prmarr = prmstr.split("&");
        for ( var i = 0; i < prmarr.length; i++) {
            var tmparr = prmarr[i].split("=");
            params[tmparr[0]] = tmparr[1];
        }
        return params;
    }

    var params = getSearchParameters();
    window.location = params.URL;
    </script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.