উইন্ডো.ক্লোজ এবং সেলফ্লোজ ক্রোমে উইন্ডোটি বন্ধ করবেন না


174

বিষয়টি হ'ল আমি যখন প্রার্থনা করি window.close()বা self.close()এটি উইন্ডোটি বন্ধ করে না। এখন এমন একটি বিশ্বাস মনে হচ্ছে যে ক্রোমে আপনি স্ক্রিপ্ট দ্বারা কোনও উইন্ডো যা স্ক্রিপ্ট তৈরি না করে বন্ধ করতে পারবেন না। এটি স্পষ্টতই মিথ্যা তবে তা নিশ্চিত করার জন্য যদি এটির সতর্কতা পপআপ করার প্রয়োজন হয় তবে তা এখনও এটি করার কথা মনে করা যায় না। এগুলি হচ্ছে না।

সুতরাং যে কেউ ভালো কিছু ব্যবহার করে একটি উইন্ডো বন্ধ বাস্তব, কার্মিক এবং প্রমাণিত পদ্ধতি আছে javascript:window.close()বা javascript:self.close()আসলে চাপলে কি হবে বলে আশা করা হচ্ছে এবং কিছু যে প্রতি ব্রাউজার যে নয় ক্রোম ভিত্তি করে ঠিক সূক্ষ্ম ঘটবে কেন? যে কোনও পরামর্শের ব্যাপক প্রশংসা করা হবে এবং আমি জাভাস্ক্রিপ্টের নির্দিষ্ট সমাধান খুঁজছি, জ্যাকুয়ারি বা তৃতীয় পক্ষের বাস্তবায়ন কিছুই নয়।

আপডেট: প্রস্তাবিত যা বেশিরভাগ ক্ষেত্রে গুরুতর সীমাবদ্ধতা এবং ব্যবহারযোগ্যতার সমস্যা রয়েছে, সর্বাধিক প্রস্তাবনা (ট্যাম্পারমনকি নির্দিষ্ট) // @grant window.closeস্ক্রিপ্ট শিরোনাম ব্যবহার করে প্রায়শই সেই ট্যাবগুলিতে এমনকি কৌশলটি পরিচালনা করবে যা সাধারণত ঘনিষ্ঠ পদ্ধতিটি পরিচালনা করতে পারে না। যদিও পুরোপুরি আদর্শ নয় এবং প্রতিটি ক্ষেত্রেই সাধারণীকরণ করা হয় না, এটি আমার ক্ষেত্রে একটি ভাল সমাধান।


window.close()ক্রোমে আমার জন্য কাজ করে।
ম্যাশ

3
@ গ্যারি: উম্ম, না তাই না। ভাষার সাথে এর কোনও যোগসূত্র নেই। এটি ব্রাউজারগুলির দ্বারা প্রয়োগ একটি ফাংশন। যদি আপনি window.closeএটির মতো কাজ করছেন না এমন চিত্র দেখিয়ে যদি একটি ন্যূনতম উদাহরণ লিখতে পারেন তবে আমি মনে করি এটি "এটি কাজ করে না" বলার চেয়ে আরও সহায়ক হতে পারে।
ব্লেন্ডার

3
আমি আপনাকে দুটি উদাহরণ দিয়েছি। এটি আপনার জন্য <a href="javascript:window.close">CLOSE</a>
বানানটি লিখেছেন

3
অভিভাবক যা অনুচিত জাভাস্ক্রিপ্ট। উইন্ডো.ক্লোজ () চেষ্টা করুন এবং এটি কাজ করে। উইন্ডো.ক্লোজ কেবল একটি পরিবর্তনশীল নাম এবং ফাংশনটি কল করবে না (কমপক্ষে এটি ক্রোম 37 এ পরীক্ষা করার পরে তা হয় না)। আমি যখন আপনার উদাহরণ) পরিবর্তন window.close করার (এটা ক্রোম 37. কাজ করে
জর্জ

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

উত্তর:


187

সাধারণ জাভাস্ক্রিপ্ট উইন্ডো উইলি-নিলি বন্ধ করতে পারে না। এটি একটি সুরক্ষা বৈশিষ্ট্য যা বিভিন্ন দূষিত শোষণ এবং বিরক্তি বন্ধ করতে কিছুক্ষণ আগে চালু হয়েছিল।

এর জন্য সর্বশেষ কাজ করার বৈশিষ্ট থেকেwindow.close() :

close()উইন্ডোতে পদ্ধতি উচিত বস্তু, সব নিম্নলিখিত শর্তাবলী মিলে যদি, বন্ধ ব্রাউজিং প্রসঙ্গ একজন :

  • সংশ্লিষ্ট ব্রাউজিং প্রসঙ্গ একজন হয় চিত্রনাট্য closable
  • আগত স্ক্রিপ্টের ব্রাউজিং প্রসঙ্গ ব্রাউজিং প্রসঙ্গে A এর সাথে পরিচিত ।
  • শায়িত্ব স্ক্রিপ্ট ব্রাউজিং প্রসঙ্গ ব্রাউজিং প্রসঙ্গ নেভিগেট করতে অনুমতি দেওয়া হয় একটি

কোনও ব্রাউজিং প্রসঙ্গটি স্ক্রিপ্ট-ক্লোজেবল হয় যদি এটি কোনও সহায়ক ব্রাউজিং প্রসঙ্গ হয় যা কোনও স্ক্রিপ্ট দ্বারা তৈরি করা হয়েছিল (ব্যবহারকারীর ক্রিয়া দ্বারা বিপরীতে), বা যদি এটি ব্রাউজিং প্রসঙ্গ হয় যার সেশনের ইতিহাসে কেবলমাত্র একটি ডকুমেন্ট থাকে।

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

ক্রোম সেই ব্যতিক্রমটিকে মঞ্জুরি দেয় - যা এটি ব্যবহারকারীর স্ক্রিপ্টগুলিতে প্রযোজ্য নয় - তবে ফায়ারফক্স তা প্রয়োগ করে না। ফায়ারফক্স বাস্তবায়ন সমতল বর্ণনা করেছে :

পদ্ধতিটি ব্যবহার করে কোনও স্ক্রিপ্ট দ্বারা খোলা উইন্ডোগুলির জন্য কেবল এই পদ্ধতিটি কল করার অনুমতি দেওয়া হয় window.open


আপনি যদি window.closeগ্রিসমোনকি / ট্যাম্পার্মনকি / ব্যবহারকারী স্ক্রিপ্ট থেকে ব্যবহার করার চেষ্টা করেন তবে আপনি পাবেন:
ফায়ারফক্স: ত্রুটি বার্তা, " Scripts may not close windows that were not opened by script."
ক্রোম: কেবল নিঃশব্দে ব্যর্থ।



দীর্ঘমেয়াদী সমাধান:

এর সাথে মোকাবিলা করার সর্বোত্তম উপায় হ'ল পরিবর্তে একটি Chrome এক্সটেনশান এবং / অথবা ফায়ারফক্স অ্যাড-অন করা। এগুলি নির্ভরযোগ্যভাবে বর্তমান উইন্ডোটি বন্ধ করতে পারে।

তবে, যেহেতু সুরক্ষিত ঝুঁকিগুলি, window.closeযা গ্রিসমোনকি / ট্যাম্পারমনকি স্ক্রিপ্টের জন্য উত্থাপিত হয় সেগুলি কম; গ্রিসমোনকি এবং ট্যাম্পার্মনকি যুক্তিযুক্তভাবে তাদের এপিআইতে এই কার্যকারিতাটি সরবরাহ করতে পারে (মূলত আপনার জন্য এক্সটেনশান কাজের প্যাকেজিং)।
একটি বৈশিষ্ট্য অনুরোধ করা বিবেচনা করুন।



হ্যাকি ওয়ার্কআউন্ডস:

ক্রোম বর্তমানে "স্ব-পুনর্নির্দেশ" শোষণের পক্ষে ঝুঁকির মধ্যে রয়েছে। সুতরাং এই জাতীয় কোড সাধারণভাবে কাজ করতে ব্যবহৃত:

open(location, '_self').close();

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

যাইহোক, ক্রোম (v43 & v44) প্লাস ট্যাম্পারমনকি (v3.11 বা তার পরে) এ এখনও একটি প্রকরণ কাজ করে । একটি স্পষ্ট @grantএবং সরল ব্যবহার করুন window.close()। উদাহরণ:

// ==UserScript==
// @name        window.close demo
// @include     http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant       GM_addStyle
// ==/UserScript==

setTimeout (window.close, 5000);

আপডেটের জন্য zanetu ধন্যবাদ । মনে রাখবেন যে কেবলমাত্র একটি ট্যাব খোলা থাকলে এটি কাজ করবে না। এটি কেবলমাত্র অতিরিক্ত ট্যাবগুলি বন্ধ করে দেয়।


ফায়ারফক্স সেই শোষণের বিরুদ্ধে সুরক্ষিত। সুতরাং, জাভাস্ক্রিপ্টের একমাত্র উপায় হ'ল সুরক্ষা সেটিংস পঙ্গু করা, একবারে একটি ব্রাউজার।

আপনি খুলতে about:configএবং সেট
allow_scripts_to_close_windowsকরতে পারেন true

যদি আপনার স্ক্রিপ্টটি ব্যক্তিগত ব্যবহারের জন্য হয় তবে এগিয়ে যান এবং এটি করুন। আপনি যদি অন্য কাউকে সেটিংটি চালু করতে বলেন, তারা কুসংস্কারের সাথে প্রত্যাখ্যান করতে স্মার্ট এবং ন্যায়সঙ্গত হবে।

ক্রোমের জন্য বর্তমানে কোনও সমতুল্য সেটিং নেই।


3
আরে আমার বন্ধু, অবশেষে আপনার কাছ থেকে শুনে খুশি। শুধু একটি নোট, Fx এ আপনার আলোকসম্পাতের দ্বারা যে সীমাবদ্ধতা বাইপাস করতে পারেন dom.allow_scripts_to_close_windows;falseথেকে trueউৎস ফাটান ছাড়া কিন্তু আমি Chrome এ কিছুই অনুমান / পুনর্নির্মাণের যা আমি এখন জন্য এটি প্রায় পেয়েছিলাম। আমি জানি এবং টিএম বিকাশকারীর সাথে কথা বলেছি এবং সাম্প্রতিক আলফা / বিটাতে আমরা ম্যান-ইন-দ্য-মধ্য শৈলীতে চালানোর জন্য এটি একটি সামঞ্জস্য বিকল্প হিসাবে (স্ক্রিপ্টের সেটিংস) রেখেছি। আমি অনুমান করি যে হ্যাকগুলি আমাদের কাছে পরিষ্কার সমাধান, করুণা নেই।
গিরি

3
যদি কারও উইন্ডো.ক্লোজ বা ব্রাউজারগুলির মধ্যে বিশেষ আচরণের পার্থক্য নিয়ে সমস্যা হয় তবে এই উত্তরটি খুব মনোযোগ সহকারে পড়ুন - এটিতে সমস্ত সঠিক তথ্য রয়েছে।
ব্রোন ডেভিস

উইন্ডোটি স্ক্রিপ্ট দিয়ে খোলা হয়েছিল কিনা তা যাচাই করার কোনও উপায় আছে কি না? (আমাকে একটি পিছনের বোতামটি প্রদর্শন / আড়াল করা দরকার, আমি হ্যাকটি ব্যবহার করতে চাই না) ধন্যবাদ EDIT: window.opener === নাল
সিটিয়া

ক্রোম 36.0.1985.125 ওয়েডনেসডে, জুলাই 16, 2014 থেকে, হ্যাকির কাজগুলি কাজ করতে পারে না, আমার উত্তরে বিস্তারিত detail
সুইচুল

2
window.close()আপনি যদি @grantঅন্য কোনও মান সেট করে থাকেন তবে ট্যাম্পারমনকিতে কাজ করবে noneএই থ্রেড দেখুন ।
zanetu

32

ক্রোম 36.0.1985.125 সংস্করণে সুরক্ষা সমস্যাগুলি স্থির করে

Chrome 36.0.1985.125 ওয়েডনেসডে, জুলাই 16, 2014 রিলিজ নোট

আমার পর্যবেক্ষণ থেকে, এই আপডেটটি window.close()পপআপ উইন্ডোটি বন্ধ করতে ব্যবহারের বিষয়টি ঠিক করেছে । এটি ব্যর্থ হয়ে গেলে আপনি কনসোলে এটি দেখতে পাবেন, "স্ক্রিপ্টগুলি কেবল এটি দ্বারা খোলা উইন্ডোগুলি বন্ধ করতে পারে।" তার মানে হ্যাকি ওয়ার্কআরাউন্ডস (ব্রোক অ্যাডামসের উত্তর) সর্বশেষ প্রকাশে কাজ নাও করতে পারে

সুতরাং, পূর্ববর্তী ক্রোম প্রকাশিত বিল্ডগুলিতে, নীচের কোড ব্লকটি এই আপডেটের সাথে না হলেও কাজ করতে পারে।

window.open('', '_self', '');
window.close();

এই আপডেটের জন্য, আপনাকে পপআপ উইন্ডোটি বন্ধ করতে সেই অনুযায়ী আপনার কোডটি আপডেট করতে হবে। এর সমাধানগুলির মধ্যে একটি হ'ল পপআপ উইন্ডো আইডিটি ব্যবহার এবং ব্যবহার

chrome.windows.remove(integer windowId, function callback)

এটি অপসারণ পদ্ধতি। Chrome এক্সটেনশন উইন্ডোজ এপিআই chrome.windows এ পাওয়া যাবে

আসলে আমার ক্রোম এক্সটেনশান মার্কভিউ এই সমস্যার মুখোমুখি হয়েছিল এবং এই ক্রোম আপডেটের জন্য এটি কার্যকর করতে আমাকে আমার কোড আপডেট করতে হয়েছিল। যাইহোক, মার্কভিউ হ'ল আশ্চর্যজনক মার্কডাউন ফাইলগুলি পড়তে এবং লেখার জন্য এটি কন্টেন্ট আউটলাইন, বাছাইযোগ্য টেবিলগুলি এবং লাইন নম্বর সহ কোড ব্লক সিনট্যাক্স হাইলাইট সহ বৈশিষ্ট্যগুলি সরবরাহ করে।

আমি এই পোস্টটিও তৈরি করেছি , কোনও মন্তব্য স্বাগত।


2
সঠিক হ্যাকটি হ'ল open(location, '_self').close();- থেকে প্রাপ্ত ফেরতের মানটি নোট করুন open()। এটি ক্রোমে এখনও কাজ করে36.0.1985.125 m
ব্রোক অ্যাডামস

আমার ক্ষেত্রে, আমি আবার এটি দিয়ে পরীক্ষা করেছি open(location, '_self').close();, আমি এটিতে "অননুমোদিত" ত্রুটি পেয়েছি। এই উইন্ডোটি 'উইন্ডো.ক্লোজ () (warning on this"Scripts may close only the windows that were opened by it."). It looked like ওপেন (লোকেশন, ' _সেলফ ') দিয়ে আলাদা is মন্তব্যের জন্য ধন্যবাদ @ ব্রোক-অ্যাডামস
সুইচুল

আমার টাইপস্ক্রিপ্ট রয়েছে এবং যখন আমি chrome.windows.removeএটি বলি সিম্বল ক্রোমটি খুঁজে পেল না। আমি কীভাবে এটি সমাধান করতে পারি? আমার কি কিছু ধরণের রেফারেন্স যুক্ত করা দরকার?
ডিভটি

@ ডিভেট ক্রোম.উইন্ডোস.ম্রোভ হ'ল ক্রোম এক্সটেনশন এপিআই, আপনার জাভাস্ক্রিপ্টটি আপনার ক্রোম এক্সটেনশন প্রোগ্রামের দ্বারা স্বীকৃত হওয়া উচিত। আপনি এটি আপনার ব্যাকগ্রাউন্ড.জেজেসের ভিতরে চেষ্টা করতে পারেন, আপনার ক্রোম এক্সটেনশন ম্যানিফেস্টে।জসনের আপনার থাকা দরকার: "ব্যাকগ্রাউন্ড": {"স্ক্রিপ্টস": ["ব্যাকগ্রাউন্ড.
js

ব্যবহারকারীদের অবাধে অ্যাক্সেস করার জন্য আমি মার্কভিউ লগইন ফাংশনটি সরিয়েছি । সুতরাং আমি উপরে উল্লিখিত উদাহরণটি এখন উপলভ্য নয়।
swcool

21

টেম্পারমনকিতে এখন আপনি ব্যবহার করতে পারেন

// @grant        window.close

এবং তারপর কেবল কল

window.close();

আমি নিশ্চিত করেছি যে এটি অনেক ক্ষেত্রে কাজ করে তবে মাঝে মাঝে জেদী কিন্তু কিছুই না থেকে ভাল, আপনাকে ধন্যবাদ। আমি এটি পোস্টে যুক্ত করব।
16'16

2
ঠিক যেমন একটি নোট:
গ্রিসমোনকি

17

আমি ব্রুক অ্যাডামস দ্বারা পোস্ট করা পদ্ধতিটি ব্যবহার করছি এবং এটি ফায়ারফক্সেও কাজ করে, যদি এটির ব্যবহারকারী উদ্যোগ নেওয়া হয়।

open(location, '_self').close();

আমি এটিকে একটি বোতাম প্রেস থেকে কল করছি যাতে এটি ব্যবহারকারী হিসাবে শুরু করা হয় , এবং এটি ক্রোম 35-40, ইন্টারনেট এক্সপ্লোরার 11, সাফারি 7-8 এবং ALSO ফায়ারফক্স ২৯-৩৫ ব্যবহার করে দুর্দান্ত কাজ করছে। আমি উইন্ডোজ 8.1 সংস্করণ এবং ম্যাক ওএস এক্স 10.6, 10.9 এবং 10.10 এর চেয়ে আলাদা ব্যবহার করে পরীক্ষা করেছি that


স্ব-সমাপ্তি উইন্ডো কোড (যে পৃষ্ঠাতে নিজেকে বন্ধ করে দেওয়া হয়)

ব্যবহারকারী-খোলা উইন্ডোতে সম্পূর্ণ কোডটি ব্যবহার করা হবে যা নিজেকে বন্ধ করতে পারে:

window_to_close.htm

javascript:

function quitBox(cmd)
{   
    if (cmd=='quit')
    {
        open(location, '_self').close();
    }   
    return false;   
}

এইচটিএমএল:

<input type="button" name="Quit" id="Quit" value="Quit" onclick="return quitBox('quit');" />

এই পরীক্ষার পৃষ্ঠাটি ব্যবহার করে দেখুন: (এখন ক্রোম 40 এবং ফায়ারফক্স 35 এ পরীক্ষা করা হয়েছে)

http://browserstrangeness.bitbucket.io/window_close_tester.htm


উইন্ডো ওপেনার কোড (উপরের পৃষ্ঠাটি খোলে এমন পৃষ্ঠায়)

এই কাজটি করার জন্য, সুরক্ষা-আরোপিত ক্রস ব্রাউজারের সামঞ্জস্যতাটির প্রয়োজন যে বন্ধ হওয়া উইন্ডোটি অবশ্যই ইতিমধ্যে একই সাইটের ডোমেনের মধ্যে একটি বোতামে ক্লিক করে ব্যবহারকারী দ্বারা খোলা থাকতে হবে।

উদাহরণস্বরূপ, উইন্ডো যা নিজেকে বন্ধ করতে উপরের পদ্ধতিটি ব্যবহার করে, এই কোডটি ব্যবহার করে একটি পৃষ্ঠা থেকে খোলা যেতে পারে (উপরে বর্ণিত আমার উদাহরণ পৃষ্ঠা থেকে দেওয়া কোড):

window_close_tester.htm

javascript:

function open_a_window() 
{
    window.open("window_to_close.htm"); 

    return false;
}

এইচটিএমএল:

<input type="button" onclick="return open_a_window();" value="Open New Window/Tab" />

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

1
একরকম, এটি আমার পক্ষে কাজ করে না। ফায়ারফক্স 30 এ বা ক্রোম 37-এ নয় does আমার কোড <button onclick="open(location,'_self').close()" >Close Window</button>। আমি কি স্পষ্টতই কিছু ভুল করছি? আমার কাছে মনে হয় এটি ব্যবহারকারীও দীক্ষিত। মনে রাখবেন যে আমি যদি একটি <button>বা একটি ব্যবহার করি তবে আমি একই ফল পেয়েছি <input type="button">
লর্ডঅফ দ্য পিগস

আপনার উত্তরের উপরে একটি পরীক্ষার পৃষ্ঠা যুক্ত করা হয়েছে।
জেফ ক্লেটন

পোস্ট ইউম ইউয়াম পোস্টের জন্য ধন্যবাদ, বিটবুককেট.অর্গ সম্প্রতি লিঙ্কটি বিটবুকিট.ইতে পরিবর্তন করেছে - এখনই উত্তরে স্থির করা হয়েছে
জেফ ক্লেটন

এটি আমার জন্য কাজ করে (উইন্ডোটি বন্ধ করার জন্য পৃষ্ঠায় একটি বোতাম রয়েছে)। যা কাজ করেনি তা ছিল: window.open('', '_self', ''); window.close(); তবে এটি কাজ করেছিল open(location, '_self').close();
ক্রিস্টেনেন

10

এখনও অনেকে জাভাস্ক্রিপ্ট ব্যবহার করে ক্রোম ব্রাউজারটি বন্ধ করার উপায় অনুসন্ধান করার চেষ্টা করছেন। নিম্নলিখিত পদ্ধতিটি কেবল তখনই কার্যকর হয় যখন আপনি ক্রোমটি অ্যাপ্লিকেশন লঞ্চার হিসাবে ব্যবহার করেন - উদাহরণস্বরূপ কিওস্ক!

আমি নিম্নলিখিত পরীক্ষা করেছি:

আমি নিম্নলিখিত এক্সটেনশনটি ব্যবহার করছি: কিউস্ক বন্ধ করুন

আমি ব্যবহারের নির্দেশাবলী অনুসরণ করছি এবং এটি ঠিক কাজ করছে বলে মনে হচ্ছে (পরীক্ষাগুলি করার সময় আপনি ক্যাশেটি সাফ করেছেন তা নিশ্চিত করুন)। আমি যে জাভাস্ক্রিপ্টটি ব্যবহার করি তা হ'ল (ক্লিক ইভেন্টের সাথে সংযুক্ত):

window.location.href = '/closekiosk';

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

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


9

এটি "স্পষ্টতই মিথ্যা" ভেবেও আপনি কী "বিশ্বাস বলে মনে করেন" আসলে তা সঠিক is উইন্ডো.ক্লোজের জন্য মোজিলা ডকুমেন্টেশন বলছে

উইন্ডো.ওপেন পদ্ধতিটি ব্যবহার করে স্ক্রিপ্ট দ্বারা খোলা উইন্ডোগুলির জন্য এই পদ্ধতিটি কেবলমাত্র কল করার অনুমতি দেওয়া হয়। উইন্ডোটি কোনও স্ক্রিপ্ট দ্বারা খোলা না থাকলে, জাভাস্ক্রিপ্ট কনসোলে নিম্নলিখিত ত্রুটিটি উপস্থিত হবে: স্ক্রিপ্টগুলি স্ক্রিপ্ট দ্বারা খোলা হয়নি এমন উইন্ডোগুলি বন্ধ নাও করতে পারে S

আপনি বলছেন যে এটি "এটি এখনও করা উচিত" তবে আমি মনে করি না যে আপনি এমন কোনও রেফারেন্স খুঁজে পাবেন যা এটি সমর্থন করে, সম্ভবত আপনি কিছু ভুল করেছিলেন?


9

আমি একটি নতুন উপায় খুঁজে পেয়েছি যা আমার পক্ষে নিখুঁতভাবে কাজ করে

var win = window.open("about:blank", "_self");
win.close();

1
এটি 2017 এবং আমি এখনও ত্রুটি পেয়েছি "স্ক্রিপ্টগুলি স্ক্রিপ্ট দ্বারা খোলা হয়নি এমন উইন্ডোগুলি বন্ধ করতে পারে না।"
রোটিমি

আইই ১১ এর কনফার্ম বোতামটির জন্য দুর্দান্ত হ্যাক
গোপাল00005

ক্রোম এবং ফায়ারফক্সে কাজ করে
ভিনিথ প্রধান

1
এই গর্তটি ভরাট হয়েছে বলে মনে হচ্ছে। আমি কখনই জানি না তবে আমি সর্বশেষ ডেভ বিল্ড 84.x ব্যবহার করছি ফাঁকা পৃষ্ঠা লোড হয় তবে বন্ধটি আগুন দেয় না।
স্কট ক্রিস্টেনসেন

4

নীচের কোডটি আমার পক্ষে কাজ করেছে -

window.open('location', '_self', '');
window.close();

ক্রোম 43.0.2357.81 এ পরীক্ষিত


আপনি কি দয়া করে আপনার ক্রোম সংস্করণ যুক্ত করতে পারেন?
স্টিফান

আমার ক্রোম সংস্করণটি 43.0.2357.81।
DfrDkn

7
আমার জন্য যা কেবলমাত্র বর্তমান উইন্ডোটির সাথে / অবস্থানের উইন্ডোটি প্রতিস্থাপন করে।
অ্যালিয়ানোস-

@ এলিয়ানোস- আমার জন্যও
রিকার্ডো গঞ্জেলস

1
সর্বশেষ ক্রোমে কাজ করছে না - সংস্করণ 61.0.3163.100 (অফিসিয়াল বিল্ড) (
-৪

1

এটি পুরানো হতে পারে তবে এর উত্তর দিন।

আমি একটি ট্যাব বন্ধ করতে টপ.ক্লোজ () ব্যবহার করি । উইন্ডো.ক্লোজ () বা অন্যান্য উন্মুক্ত ... বন্ধ আমার পক্ষে কাজ করে না।


11
এটি "Scripts may not close windows that were not opened by script."অন্যান্য উত্তরে উল্লিখিত সমস্যা থেকেও ভুগছে ।
kad81

1
আপনার উত্তর উপর সমাধান দিন। দয়া করে কেবল আপনার উত্তরে সমস্যাটি আলোচনা করবেন না।
বিমল দাস

0

আমার ক্ষেত্রে, পৃষ্ঠাটি বন্ধ করার দরকার ছিল, তবে এটি কোনও লিঙ্ক দ্বারা খোলা হয়েছে এবং সুতরাং window.closeএটি ব্যর্থ হবে।

আমি যে সমাধানটি বেছে নিয়েছি তা হ'ল সমস্যাটি ইস্যু করা window.close, তারপরে window.setTimeoutএকটি ভিন্ন পৃষ্ঠাতে পুনঃনির্দেশ করে।

এইভাবে, যদি window.closeসফল হয় তবে সেই পৃষ্ঠাতে কার্যকর হওয়া বন্ধ হয়ে যায়, তবে এটি যদি ব্যর্থ হয় তবে এক সেকেন্ডে এটি অন্য পৃষ্ঠায় পুনর্নির্দেশ করবে।

window.close();
window.setTimeout(function(){location.href = '/some-page.php';},1000);

0

ব্রুকের এই উত্তরটি আমার পক্ষে কাজ করুন। জাভাস্ক্রিপ্টকে অবশ্যই সেই উইন্ডোটি বন্ধ করার অনুমতি দেওয়া উচিত নয় যা একই জাভাস্ক্রিপ্ট দ্বারা খোলা হয়নি।

আমি কেবলমাত্র উইন্ডোটি বন্ধ করতে পারি যদি আমি পিতা-মাতার জাভাস্ক্রিপ্ট থেকে বন্ধ করে দিই। সুতরাং আমার পিতামাতার মধ্যে আমি এই জাতীয় কিছু করতে পারি।

var myChildWindow;

function openWindow(){
myChildWindow = window.open("","myChildWindow","width=400,height=400");
}

function closeWindow() {
myChildWindow.close();
}

-1

আপনি নীচে আমার কোড ব্যবহার করার চেষ্টা করতে পারেন। এটি আপনাকে আপনার পিতামাতা উইন্ডোটিকে পুনর্নির্দেশ করতে সহায়তা করবে:

মূল:

<script language="javascript">

function open_a_window() 
{
    var w = 200;
        var h = 200;
        var left = Number((screen.width/2)-(w/2));
        var tops = Number((screen.height/2)-(h/2));

        window.open("window_to_close.html", '', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+tops+', left='+left);

   return false;
}

// opener:
window.onmessage = function (e) {
  if (e.data === 'location') {
    window.location.replace('https://www.google.com');
  }
};

</script>

<input type="button" onclick="return open_a_window();" value="Open New Window/Tab" />

পপআপ:

<!DOCTYPE html>
<html>
<body onload="quitBox('quit');">

<h1>The window closer:</h1>

<input type="button" onclick="return quitBox('quit');" value="Close This Window/Tab" /> 


<script language="javascript">

function quitBox(cmd) 
{      
    if (cmd=='quit')    
    {   
       window.opener.postMessage('location', '*');
       window.open(location, '_self').close();    
    }     
    return false;   
}

</script>

</body>
</html>

-1

টেম্পারমোনকি এর জন্য:

@grant window.close 

রেফ: https://www.tampermonkey.net/docamentation.php#_grant


যদিও এটি তাত্ত্বিকভাবে প্রশ্নের উত্তর দিতে পারে , এখানে উত্তরের প্রয়োজনীয় অংশগুলি অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্ক সরবরাহ করা ভাল।
আন্তোন মেনশভ

-2

উইন্ডো.ওপেন () ব্যবহার করে আপনি যদি নতুন উইন্ডোটি খুলেন তবেই আমি নতুন হিসাবে উল্লিখিত উইন্ডোটি কোডটি ব্যবহার করে বন্ধ করতে সক্ষম হব। এটি আমার পক্ষে নিখুঁতভাবে কাজ করে :) দ্রষ্টব্য: কোনও নতুন ট্যাবে পৃষ্ঠা খুলতে কখনও href ব্যবহার করবেন না। উইন্ডো.ক্লোজ () "href" এর সাথে কাজ করে না। পরিবর্তে উইন্ডো.ওপেন () ব্যবহার করুন।


1
এটি কেবল কারেন উইন্ডোটি প্রতিস্থাপন করছে। আর না.
রিকার্ডো গঞ্জেলস

-3

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

তবে, আমার পরিস্থিতি হ'ল আমি কোনও ডিভাইসের জন্য একটি ওয়েব অ্যাপ তৈরি করছি যা মূলত ডিভাইসটিই করবে। আপনি এটিকে বুট করুন, এটি ক্রোম আরম্ভ করে আমাদের অ্যাপে নেভিগেট করে। এটি এমনকি ইন্টারনেটের সাথে সংযুক্ত নয়, যে কোনও সার্ভারের সাথে এটি কথা বলে তা আমাদের স্থানীয় ডকার পাত্রে রয়েছে। ব্যবহারকারীর অ্যাপ্লিকেশনটি বন্ধ করার একটি উপায় প্রয়োজন (ওরফে ক্রোম বন্ধ করুন) যাতে তারা সিস্টেম আপডেটগুলি সম্পাদন করতে টার্মিনালটিতে অ্যাক্সেস করতে পারে।

সুতরাং এটি বুট আপ হয়, কিওস্ক মোডে ক্রোম চালু করে, ইতিমধ্যে সঠিক ঠিকানায়। এই বৈশিষ্ট্যে সহজেই দ্বিতীয় বিকল্পটি সন্তুষ্ট করতে ঘটে:

একটি ব্রাউজিং প্রসঙ্গটি স্ক্রিপ্ট-ক্লোজেবল হয় যদি এটি কোনও সহায়ক ব্রাউজিং প্রসঙ্গ হয় যা কোনও স্ক্রিপ্ট দ্বারা তৈরি করা হয়েছিল (ব্যবহারকারীর ক্রিয়া দ্বারা বিপরীত), বা যদি এটি শীর্ষ স্তরের ব্রাউজিং প্রসঙ্গ হয় যার সেশনের ইতিহাসে কেবলমাত্র একটি ডকুমেন্ট থাকে।

সুতরাং window.close()আমার কিয়স্ক অ্যাপ থেকে কেবল কল করা ঠিক কাজ করে !


-5

এই অনক্লিকের মতো কিছু চেষ্টা করুন = "স্বতঃআপনি ক্লোজ করুন ()"

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.