browser.windows

বিবরণ

ব্রাউজার উইন্ডোর সাথে ইন্টার‍্যাক্ট করতে chrome.windows API ব্যবহার করুন। ব্রাউজারে উইন্ডো তৈরি, পরিবর্তন ও আবার সাজাতে আপনি এই API ব্যবহার করতে পারবেন।

অনুমতি

অনুরোধ করা হলে, windows.Window-এ tabs.Tab অবজেক্টের একটি অ্যারে থাকে। tabs.Tab-এর url, pendingUrl, title অথবা favIconUrl প্রপার্টিতে অ্যাক্সেস পেতে হলে, আপনাকে অবশ্যই ম্যানিফেস্টে "tabs" অনুমতি ঘোষণা করতে হবে। যেমন:

{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}

ধারণা ও ব্যবহার

বর্তমান উইন্ডো

এক্সটেনশন সিস্টেমের অনেক ফাংশন একটি ঐচ্ছিক windowId আর্গুমেন্ট নেয়, যা ডিফল্ট হিসেবে বর্তমান উইন্ডোতে সেট করা থাকে।

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

যেমন, ধরুন কোনও এক্সটেনশন একটি HTML ফাইল থেকে কয়েকটি ট্যাব বা উইন্ডো তৈরি করে এবং সেই HTML ফাইলে tabs.query()-এর জন্য কল আছে। বর্তমান উইন্ডো হল সেই উইন্ডো যাতে সেই পৃষ্ঠাটি আছে যেটি কল করেছে, সবচেয়ে উপরের উইন্ডোটি যাই হোক না কেন।

সার্ভিস ওয়ার্কারের ক্ষেত্রে, বর্তমান উইন্ডোর ভ্যালু শেষ অ্যাক্টিভ উইন্ডোতে ফিরে যায়। কিছু পরিস্থিতিতে, ব্যাকগ্রাউন্ড পৃষ্ঠার জন্য কোনও বর্তমান উইন্ডো নাও থাকতে পারে।

উদাহরণ

এই API ব্যবহার করে দেখতে, chrome-extension-samples রিপোজিটরি থেকে windows API উদাহরণ ইনস্টল করুন।

দুটি উইন্ডো, প্রতিটিতে একটি করে ট্যাব আছে
দুটি উইন্ডো, প্রতিটিতে একটি করে ট্যাব।

ধরন

CreateType

Chrome 44+ Chrome 148 থেকে browser.*

কোন ধরনের ব্রাউজার উইন্ডো তৈরি করতে হবে তা নির্দিষ্ট করে। 'panel' বন্ধ করা হয়েছে এবং এটি শুধুমাত্র Chrome OS-এ আগে থেকে অনুমোদিত এক্সটেনশনের জন্য উপলভ্য।

Enum

"স্বাভাবিক"
উইন্ডোকে স্ট্যান্ডার্ড উইন্ডো হিসেবে নির্দিষ্ট করে।

"popup"
উইন্ডোটি পপ-আপ উইন্ডো হিসেবে নির্দিষ্ট করে।

"প্যানেল"
উইন্ডোকে প্যানেল হিসেবে নির্দিষ্ট করে।

QueryOptions

Chrome 88+ Chrome 148 থেকে browser.*

প্রপার্টি

  • অটো-ফিল করা

    বুলিয়ান ঐচ্ছিক

    সত্য হলে, windows.Window অবজেক্টের একটি tabs প্রপার্টি আছে যাতে tabs.Tab অবজেক্টের একটি তালিকা রয়েছে। এক্সটেনশনের ম্যানিফেস্ট ফাইলে "tabs" অনুমতি অন্তর্ভুক্ত থাকলে, Tab অবজেক্টে শুধুমাত্র url, pendingUrl, title এবং favIconUrl প্রপার্টি থাকে।

  • windowTypes

    WindowType[] ঐচ্ছিক

    সেট করা থাকলে, windows.Window-এর ধরন অনুযায়ী ফিল্টার করা হয়। আনসেট করা থাকলে, ডিফল্ট ফিল্টার ['normal', 'popup']-এ সেট করা হয়।

Window

প্রপার্টি

  • alwaysOnTop

    বুলিয়ান

    উইন্ডোটি সবসময় উপরে থাকার জন্য সেট করা আছে কিনা।

  • মনোযোগী

    বুলিয়ান

    উইন্ডোটি বর্তমানে ফোকাস করা উইন্ডো কিনা।

  • উচ্চতা

    নম্বর ঐচ্ছিক

    ফ্রেম সহ উইন্ডোর উচ্চতা, পিক্সেলে। কিছু পরিস্থিতিতে কোনও উইন্ডোতে height প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

  • id

    নম্বর ঐচ্ছিক

    উইন্ডোর আইডি। উইন্ডো আইডি ব্রাউজার সেশনের মধ্যে অনন্য। কিছু পরিস্থিতিতে কোনও উইন্ডোতে ID প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API ব্যবহার করে উইন্ডো কোয়েরি করার সময়, যেক্ষেত্রে সেশন আইডি থাকতে পারে।

  • ছদ্মবেশী মোড

    বুলিয়ান

    উইন্ডোটি ছদ্মবেশী কিনা।

  • বাঁদিকে

    নম্বর ঐচ্ছিক

    স্ক্রিনের বাঁদিকের প্রান্ত থেকে উইন্ডোর অফসেট পিক্সেলে। কিছু পরিস্থিতিতে কোনও উইন্ডোতে left প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

  • sessionId

    স্ট্রিং ঐচ্ছিক

    sessions API থেকে পাওয়া সেশন আইডি যা অনন্যভাবে উইন্ডো শনাক্ত করতে ব্যবহার করা হয়।

  • রাজ্য

    WindowState ঐচ্ছিক

    এই ব্রাউজার উইন্ডোর অবস্থা।

  • ট্যাব

    ট্যাব[] ঐচ্ছিক

    উইন্ডোতে বর্তমান ট্যাবকে উপস্থাপন করে এমন tabs.Tab অবজেক্টের অ্যারে।

  • উপর

    নম্বর ঐচ্ছিক

    স্ক্রিনের উপরের প্রান্ত থেকে উইন্ডোর অফসেট পিক্সেলে। কিছু পরিস্থিতিতে কোনও উইন্ডোতে top প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

  • ধরন

    WindowType ঐচ্ছিক

    এটি যে ধরনের ব্রাউজার উইন্ডো।

  • প্রস্থ

    নম্বর ঐচ্ছিক

    ফ্রেম সহ উইন্ডোর প্রস্থ, পিক্সেলে। কিছু পরিস্থিতিতে কোনও উইন্ডোতে width প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

WindowState

Chrome 44+ Chrome 148 থেকে browser.*

এই ব্রাউজার উইন্ডোর অবস্থা। কিছু পরিস্থিতিতে কোনও উইন্ডোতে state প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

Enum

"স্বাভাবিক"
স্বাভাবিক উইন্ডো স্টেট (মিনিমাইজ, ম্যাক্সিমাইজ বা ফুলস্ক্রিন নয়)।

"মিনিমাইজ করা হয়েছে"
মিনিমাইজ করা উইন্ডোর স্ট্যাটাস।

"সর্বাধিক করা হয়েছে"
সর্বাধিক করা উইন্ডো স্ট্যাটাস।

"ফুল-স্ক্রিন"
ফুল-স্ক্রিন উইন্ডো স্টেট।

WindowType

Chrome 44+ Chrome 148 থেকে browser.*

এটি হল ব্রাউজার উইন্ডোর ধরন। কিছু পরিস্থিতিতে উইন্ডোতে type প্রপার্টি অ্যাসাইন করা নাও থাকতে পারে; যেমন, sessions API থেকে বন্ধ করা উইন্ডো কোয়েরি করার সময়।

Enum

"স্বাভাবিক"
একটি স্বাভাবিক ব্রাউজার উইন্ডো।

"পপ-আপ"
একটি ব্রাউজার পপ-আপ।

"প্যানেল"
এই API-তে বন্ধ করা হয়েছে। Chrome অ্যাপ প্যানেল-স্টাইল উইন্ডো। এক্সটেনশন শুধুমাত্র তার নিজস্ব প্যানেল উইন্ডো দেখতে পারে।

"অ্যাপ"
এই API-তে বন্ধ করা হয়েছে। Chrome অ্যাপ উইন্ডো। এক্সটেনশন শুধুমাত্র তার অ্যাপের নিজস্ব উইন্ডো দেখতে পারে।

"devtools"
একটি ডেভেলপার টুল উইন্ডো।

প্রপার্টি

WINDOW_ID_CURRENT

windowId ভ্যালু যা বর্তমান উইন্ডো দেখায়।

ভ্যালু

-২

WINDOW_ID_NONE

windowId ভ্যালু যা Chrome ব্রাউজার উইন্ডোর অনুপস্থিতি দেখায়।

ভ্যালু

-১

পদ্ধতি

create()

browser.windows.create(
  createData?: object,
)
: Promise<Window | undefined>

প্রদান করা যেকোনও ঐচ্ছিক সাইজ, পজিশন বা ডিফল্ট URL সহ একটি নতুন ব্রাউজার উইন্ডো তৈরি করে (খোলে)।

প্যারামিটারগুলি

  • createData

    অবজেক্ট ঐচ্ছিক

    • মনোযোগী

      বুলিয়ান ঐচ্ছিক

      true হলে, একটি অ্যাক্টিভ উইন্ডো খোলে। false হলে, ইনঅ্যাক্টিভ উইন্ডো খোলে।

    • উচ্চতা

      নম্বর ঐচ্ছিক

      ফ্রেম সহ নতুন উইন্ডোর উচ্চতা পিক্সেলে। উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে স্বাভাবিক উচ্চতা সেট করা হয়।

    • ছদ্মবেশী মোড

      বুলিয়ান ঐচ্ছিক

      নতুন উইন্ডোটি ছদ্মবেশী উইন্ডো হওয়া উচিত কিনা।

    • বাঁদিকে

      নম্বর ঐচ্ছিক

      স্ক্রিনের বাঁদিকের প্রান্ত থেকে নতুন উইন্ডো পজিশন করার জন্য পিক্সেলের সংখ্যা। উল্লেখ করা না থাকলে, নতুন উইন্ডোটি স্বাভাবিকভাবেই শেষ ফোকাস করা উইন্ডো থেকে অফসেট করা হয়। প্যানেলের জন্য এই মান উপেক্ষা করা হয়।

    • setSelfAsOpener

      বুলিয়ান ঐচ্ছিক

      Chrome 64+ Chrome 148 থেকে browser.*

      true হলে, নতুন তৈরি করা উইন্ডোর 'window.opener' কলারের জন্য সেট করা হয় এবং কলারের মতো একই সম্পর্কিত ব্রাউজিং কনটেক্সটের ইউনিট-এ থাকে।

    • রাজ্য

      WindowState ঐচ্ছিক

      Chrome 44+ Chrome 148 থেকে browser.*

      উইন্ডোর প্রাথমিক অবস্থা। minimized, maximized এবং fullscreen রাজ্যকে left, top, width বা height-এর সাথে একত্রিত করা যাবে না।

    • tabId

      নম্বর ঐচ্ছিক

      নতুন উইন্ডোতে যোগ করার জন্য ট্যাবের আইডি।

    • উপর

      নম্বর ঐচ্ছিক

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

    • ধরন

      CreateType ঐচ্ছিক

      কোন ধরনের ব্রাউজার উইন্ডো তৈরি করতে হবে তা নির্দিষ্ট করে।

    • URL

      স্ট্রিং | স্ট্রিং[] ঐচ্ছিক

      উইন্ডোতে ট্যাব হিসেবে খোলার জন্য URL বা URL-এর অ্যারে। সম্পূর্ণ-যোগ্য URL-এ অবশ্যই একটি স্কিম অন্তর্ভুক্ত থাকতে হবে, যেমন, 'http://www.google.com', 'www.google.com' নয়। এক্সটেনশনের মধ্যে সম্পূর্ণ-যোগ্যতা-সম্পন্ন নয় এমন URL-কে আপেক্ষিক হিসেবে বিবেচনা করা হয়। ডিফল্ট হিসেবে নতুন ট্যাব পৃষ্ঠা সেট করা থাকে।

    • প্রস্থ

      নম্বর ঐচ্ছিক

      ফ্রেম সহ নতুন উইন্ডোর প্রস্থ পিক্সেলে। উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে স্বাভাবিক প্রস্থ সেট করা হয়।

রিটার্ন

  • <Window | undefined> প্রমিস করুন

    Chrome 88+ Chrome 148 থেকে browser.*

get()

browser.windows.get(
  windowId: number,
  queryOptions?: QueryOptions,
)
: Promise<Window>

কোনও উইন্ডো সম্পর্কে বিবরণ পায়।

প্যারামিটারগুলি

  • windowId

    নম্বর

  • queryOptions

    QueryOptions ঐচ্ছিক

    Chrome 88+ Chrome 148 থেকে browser.*

রিটার্ন

  • Promise<Window>

    Chrome 88+ Chrome 148 থেকে browser.*

getAll()

browser.windows.getAll(
  queryOptions?: QueryOptions,
)
: Promise<Window[]>

সব উইন্ডো পায়।

প্যারামিটারগুলি

  • queryOptions

    QueryOptions ঐচ্ছিক

    Chrome 88+ Chrome 148 থেকে browser.*

রিটার্ন

  • Promise<Window[]>

    Chrome 88+ Chrome 148 থেকে browser.*

getCurrent()

browser.windows.getCurrent(
  queryOptions?: QueryOptions,
)
: Promise<Window>

বর্তমান উইন্ডো দেখায়।

প্যারামিটারগুলি

  • queryOptions

    QueryOptions ঐচ্ছিক

    Chrome 88+ Chrome 148 থেকে browser.*

রিটার্ন

  • Promise<Window>

    Chrome 88+ Chrome 148 থেকে browser.*

getLastFocused()

browser.windows.getLastFocused(
  queryOptions?: QueryOptions,
)
: Promise<Window>

সবচেয়ে সম্প্রতি ফোকাস করা উইন্ডোটি পায় — সাধারণত 'সবচেয়ে উপরে' থাকা উইন্ডো।

প্যারামিটারগুলি

  • queryOptions

    QueryOptions ঐচ্ছিক

    Chrome 88+ Chrome 148 থেকে browser.*

রিটার্ন

  • Promise<Window>

    Chrome 88+ Chrome 148 থেকে browser.*

remove()

browser.windows.remove(
  windowId: number,
)
: Promise<void>

কোনও উইন্ডো এবং তার মধ্যে থাকা সব ট্যাব সরিয়ে দেয় (বন্ধ করে)।

প্যারামিটারগুলি

  • windowId

    নম্বর

রিটার্ন

  • <void> প্রমিস

    Chrome 88+ Chrome 148 থেকে browser.*

update()

browser.windows.update(
  windowId: number,
  updateInfo: object,
)
: Promise<Window>

উইন্ডোর প্রপার্টি আপডেট করে। শুধুমাত্র সেইসব প্রপার্টি উল্লেখ করুন যেগুলি পরিবর্তন করতে হবে; উল্লেখ না করা প্রপার্টি অপরিবর্তিত থাকবে।

প্যারামিটারগুলি

  • windowId

    নম্বর

  • updateInfo

    অবজেক্ট

    • drawAttention

      বুলিয়ান ঐচ্ছিক

      true হলে, ফোকাস করা উইন্ডো পরিবর্তন না করেই, উইন্ডোটি এমনভাবে ডিসপ্লে করা হয় যাতে ব্যবহারকারীর মনোযোগ উইন্ডোর দিকে আকৃষ্ট হয়। ব্যবহারকারী উইন্ডোতে ফোকাস পরিবর্তন না করা পর্যন্ত এফেক্টটি থাকে। উইন্ডোটি আগে থেকেই ফোকাসে থাকলে এই বিকল্পের কোনও প্রভাব নেই। আগের drawAttention অনুরোধ বাতিল করতে false-এ সেট করুন।

    • মনোযোগী

      বুলিয়ান ঐচ্ছিক

      true হলে, উইন্ডোটি সামনে নিয়ে আসে; 'মিনিমাইজ করা' স্ট্যাটাসের সাথে কম্বাইন করা যাবে না। false হলে, z-অর্ডারে পরবর্তী উইন্ডোটি সামনে নিয়ে আসে; 'ফুল-স্ক্রিন' বা 'সর্বাধিক বড় করা' স্ট্যাটাসের সাথে একত্রিত করা যাবে না।

    • উচ্চতা

      নম্বর ঐচ্ছিক

      উইন্ডোর সাইজ পরিবর্তন করার জন্য পিক্সেলে উচ্চতা। প্যানেলের জন্য এই মান উপেক্ষা করা হয়।

    • বাঁদিকে

      নম্বর ঐচ্ছিক

      উইন্ডোটি পিক্সেলে সরানোর জন্য স্ক্রিনের বাঁদিকের প্রান্ত থেকে অফসেট। প্যানেলের জন্য এই মান উপেক্ষা করা হয়।

    • রাজ্য

      WindowState ঐচ্ছিক

      উইন্ডোর নতুন অবস্থা। 'মিনিমাইজ করা', 'ম্যাক্সিমাইজ করা' এবং 'ফুল-স্ক্রিন' স্ট্যাটাস 'বাঁদিকে', 'উপরে', 'প্রস্থ' বা 'উচ্চতা'র সাথে একত্রিত করা যাবে না।

    • উপর

      নম্বর ঐচ্ছিক

      স্ক্রিনের উপরের প্রান্ত থেকে উইন্ডোটি পিক্সেলে সরানোর জন্য অফসেট। প্যানেলের জন্য এই মান উপেক্ষা করা হয়।

    • প্রস্থ

      নম্বর ঐচ্ছিক

      উইন্ডোর সাইজ পরিবর্তন করে পিক্সেলে প্রস্থ। প্যানেলের জন্য এই মান উপেক্ষা করা হয়।

রিটার্ন

  • Promise<Window>

    Chrome 88+ Chrome 148 থেকে browser.*

ইভেন্ট

onBoundsChanged

Chrome 86+ Chrome 148 থেকে browser.*
browser.windows.onBoundsChanged.addListener(
  callback: function,
)

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

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (window: Window) => void

onCreated

browser.windows.onCreated.addListener(
  callback: function,
  filters?: object,
)

উইন্ডো তৈরি করা হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    Chrome 46+ Chrome 148 থেকে browser.*

    callback প্যারামিটারটি দেখতে এইরকম:

    (window: Window) => void

    • জানলা

      তৈরি করা উইন্ডোর বিবরণ।

  • ফিল্টার

    অবজেক্ট ঐচ্ছিক

    • windowTypes

      যে ধরনের উইন্ডো তৈরি করা হচ্ছে সেটিকে অবশ্যই শর্ত পূরণ করতে হবে। ডিফল্ট হিসেবে এটি ['normal', 'popup'] পূরণ করে।

onFocusChanged

browser.windows.onFocusChanged.addListener(
  callback: function,
  filters?: object,
)

বর্তমানে ফোকাস করা উইন্ডো পরিবর্তন হলে ফায়ার করা হয়। সব Chrome উইন্ডো ফোকাস হারিয়ে ফেললে chrome.windows.WINDOW_ID_NONE রিটার্ন করে। মনে রাখবেন: কিছু Linux উইন্ডো ম্যানেজারে, একটি Chrome উইন্ডো থেকে অন্যটিতে পাল্টানোর ঠিক আগে WINDOW_ID_NONE সবসময় পাঠানো হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    Chrome 46+ Chrome 148 থেকে browser.*

    callback প্যারামিটারটি দেখতে এইরকম:

    (windowId: number) => void

    • windowId

      নম্বর

      নতুন-ফোকাস করা উইন্ডোর আইডি।

  • ফিল্টার

    অবজেক্ট ঐচ্ছিক

    • windowTypes

      উইন্ডোর ধরন সরিয়ে দেওয়ার জন্য যেসব শর্ত পূরণ করতে হবে। ডিফল্ট হিসেবে এটি ['normal', 'popup'] পূরণ করে।

onRemoved

browser.windows.onRemoved.addListener(
  callback: function,
  filters?: object,
)

কোনও উইন্ডো সরানো (বন্ধ করা) হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    Chrome 46+ Chrome 148 থেকে browser.*

    callback প্যারামিটারটি দেখতে এইরকম:

    (windowId: number) => void

    • windowId

      নম্বর

      সরিয়ে দেওয়া উইন্ডোর আইডি।

  • ফিল্টার

    অবজেক্ট ঐচ্ছিক

    • windowTypes

      উইন্ডোর ধরন সরিয়ে দেওয়ার জন্য যেসব শর্ত পূরণ করতে হবে। ডিফল্ট হিসেবে এটি ['normal', 'popup'] পূরণ করে।