chrome.commands

refresh date: 2026-09-25 robots: noindex

বিবরণ

আপনার এক্সটেনশনে অ্যাকশন ট্রিগার করে এমন কীবোর্ড শর্টকাট যোগ করতে কমান্ড API ব্যবহার করুন, যেমন, ব্রাউজার অ্যাকশন খোলার জন্য একটি অ্যাকশন বা এক্সটেনশনে একটি কমান্ড পাঠানো।

ম্যানিফেস্ট

এই API ব্যবহার করতে নিম্নলিখিত কীগুলি ম্যানিফেস্টে ঘোষণা করতে হবে।

"commands"

ব্যবহার

Commands API এক্সটেনশন ডেভেলপারদের নির্দিষ্ট কমান্ড সংজ্ঞায়িত করতে এবং সেগুলিকে একটি ডিফল্ট কী কম্বিনেশনের সাথে বাইন্ড করার অনুমতি দেয়। এক্সটেনশন গ্রহণ করে এমন প্রতিটি কমান্ডকে এক্সটেনশনের ম্যানিফেস্টে "commands" অবজেক্টের প্রপার্টি হিসেবে ঘোষণা করতে হবে।

প্রপার্টি কী কমান্ডের নাম হিসেবে ব্যবহার করা হয়। কমান্ড অবজেক্টে দুটি প্রপার্টি থাকতে পারে।

suggested_key

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

  • একটি স্ট্রিং ভ্যালু ডিফল্ট কীবোর্ড শর্টকাট নির্দিষ্ট করে যা সব প্ল্যাটফর্মে ব্যবহার করা উচিত।

  • অবজেক্ট ভ্যালু এক্সটেনশন ডেভেলপারকে প্রতিটি প্ল্যাটফর্মের জন্য কীবোর্ড শর্টকাট কাস্টমাইজ করার অনুমতি দেয়। প্ল্যাটফর্ম-নির্দিষ্ট শর্টকাট প্রদান করার সময়, সঠিক অবজেক্ট প্রপার্টি হল default, chromeos, linux, mac এবং windows।

আরও তথ্যের জন্য কী কম্বিনেশন সংক্রান্ত প্রয়োজনীয়তা দেখুন।

description

কমান্ডের উদ্দেশ্য সম্পর্কে ব্যবহারকারীকে সংক্ষিপ্ত বিবরণ প্রদান করার জন্য ব্যবহৃত স্ট্রিং। এই স্ট্রিং এক্সটেনশন কীবোর্ড শর্টকাট ম্যানেজমেন্ট UI-তে দেখা যায়। স্ট্যান্ডার্ড কমান্ডের জন্য বিবরণ দিতে হবে, তবে অ্যাকশন কমান্ডের জন্য বিবরণ দিতে হবে না।

একটি এক্সটেনশনে অনেক কমান্ড থাকতে পারে, তবে সর্বাধিক চারটি সাজেস্ট করা কীবোর্ড শর্টকাট নির্দিষ্ট করতে পারে। ব্যবহারকারী chrome://extensions/shortcuts ডায়ালগ থেকে ম্যানুয়ালি আরও শর্টকাট যোগ করতে পারবেন।

যেসব কী কাজ করে

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

আলফা কী
A … Z
সাংখ্যিক 'কী'
0 … 9
স্ট্যান্ডার্ড কী স্ট্রিং

সাধারণ–Comma, Period, Home, End, PageUp, PageDown, Space, Insert, Delete

Up, Down, Left, Right–তীরচিহ্ন কী

মিডিয়া কী–MediaNextTrack, MediaPlayPause, MediaPrevTrack, MediaStop

পরিবর্তক কী স্ট্রিং

Ctrl, Alt (macOS-এ Option), Shift, MacCtrl (শুধুমাত্র macOS-এ), Command (শুধুমাত্র macOS-এ), Search (শুধুমাত্র ChromeOS-এ)

'কী' কম্বিনেশন সংক্রান্ত প্রয়োজনীয়তা

  • এক্সটেনশন কমান্ড শর্টকাটে অবশ্যই Ctrl বা Alt অন্তর্ভুক্ত থাকতে হবে।

    • মিডিয়া 'কী'-এর সাথে মডিফায়ার ব্যবহার করা যাবে না।
  • macOS-এ Ctrl অটোমেটিক Command-এ কনভার্ট হয়ে যায়।

    • macOS-এ Control কী ব্যবহার করতে, "mac" শর্টকাট নির্ধারণ করার সময় Ctrl-এর পরিবর্তে MacCtrl ব্যবহার করুন।

    • অন্য প্ল্যাটফর্মের জন্য কম্বিনেশনে MacCtrl ব্যবহার করলে যাচাইকরণ সংক্রান্ত সমস্যা হবে এবং এক্সটেনশন ইনস্টল করা যাবে না।

  • Shift হল সব প্ল্যাটফর্মে একটি ঐচ্ছিক মডিফায়ার।

  • Search হল একটি ঐচ্ছিক মডিফায়ার যা শুধুমাত্র ChromeOS-এ উপলভ্য।

  • নির্দিষ্ট কিছু অপারেটিং সিস্টেম এবং Chrome শর্টকাট (যেমন, উইন্ডো ম্যানেজমেন্ট) সবসময় এক্সটেনশন কমান্ড শর্টকাটের চেয়ে বেশি অগ্রাধিকার পায় এবং ওভাররাইট করা যায় না।

কমান্ড ইভেন্ট ম্যানেজ করা

manifest.json:

{
  "name": "My extension",
  ...
  "commands": {
    "run-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y"
      },
      "description": "Run \"foo\" on the current page."
    },
    "_execute_action": {
      "suggested_key": {
        "windows": "Ctrl+Shift+Y",
        "mac": "Command+Shift+Y",
        "chromeos": "Ctrl+Shift+U",
        "linux": "Ctrl+Shift+J"
      }
    }
  },
  ...
}

আপনার সার্ভিস ওয়ার্কারে, onCommand.addListener ব্যবহার করে ম্যানিফেস্টে উল্লেখ করা প্রতিটি কমান্ডের সাথে আপনি একটি হ্যান্ডলার বাইন্ড করতে পারবেন। যেমন:

service-worker.js:

chrome.commands.onCommand.addListener((command) => {
  console.log(`Command: ${command}`);
});

অ্যাকশন কমান্ড

_execute_action (Manifest V3), _execute_browser_action (Manifest V2) এবং _execute_page_action (Manifest V2) কমান্ডগুলি যথাক্রমে আপনার অ্যাকশন, ব্রাউজার অ্যাকশন বা পৃষ্ঠা অ্যাকশন ট্রিগার করার জন্য সংরক্ষিত। এইসব কমান্ড স্ট্যান্ডার্ড কমান্ডের মতো command.onCommand ইভেন্ট ডিসপ্যাচ করে না।

আপনার পপ-আপ খোলার উপর ভিত্তি করে আপনাকে কোনও অ্যাকশন নিতে হলে, আপনার পপ-আপের JavaScript-এর মধ্যে DOMContentLoaded ইভেন্ট শোনার কথা বিবেচনা করুন।

সুযোগ

ডিফল্ট হিসেবে, Chrome ব্রাউজারে কমান্ডের স্কোপ সীমাবদ্ধ থাকে। এর অর্থ হল, ব্রাউজার ফোকাসে না থাকলে, কমান্ড শর্টকাট কাজ করে না। Chrome 35 থেকে শুরু করে, এক্সটেনশন ডেভেলপাররা ঐচ্ছিকভাবে কোনও কমান্ডকে "গ্লোবাল" হিসেবে চিহ্নিত করতে পারেন। Chrome ফোকাসে না থাকলেও গ্লোবাল কমান্ড কাজ করে।

গ্লোবাল কমান্ডের জন্য কীবোর্ড শর্টকাট সাজেশন Ctrl+Shift+[0..9]-এর মধ্যে সীমাবদ্ধ। অন্যান্য অ্যাপ্লিকেশনে শর্টকাট ওভাররাইড করার ঝুঁকি কমানোর জন্য এটি একটি সুরক্ষামূলক ব্যবস্থা, কারণ, উদাহরণস্বরূপ, Alt+P-কে গ্লোবাল হিসেবে অনুমতি দেওয়া হলে, প্রিন্ট ডায়ালগ খোলার জন্য কীবোর্ড শর্টকাট অন্যান্য অ্যাপ্লিকেশনে কাজ নাও করতে পারে।

ব্যবহারকারীরা chrome://extensions/shortcuts-এ দেখানো UI ব্যবহার করে তাদের পছন্দের 'কী' কম্বিনেশনে গ্লোবাল কমান্ড রিম্যাপ করতে পারবেন।

উদাহরণ:

manifest.json:

{
  "name": "My extension",
  ...
  "commands": {
    "toggle-feature-foo": {
      "suggested_key": {
        "default": "Ctrl+Shift+5"
      },
      "description": "Toggle feature foo",
      "global": true
    }
  },
  ...
}

উদাহরণ

নিম্নলিখিত উদাহরণগুলি Commands API-এর মূল কার্যকারিতা দেখায়।

প্রাথমিক কমান্ড

কমান্ডের মাধ্যমে এক্সটেনশন কীবোর্ড শর্টকাটে লজিক ম্যাপ করতে পারে যা ব্যবহারকারী চালু করতে পারেন। সবচেয়ে প্রাথমিক স্তরে, কোনও কমান্ডের জন্য শুধুমাত্র এক্সটেনশনের ম্যানিফেস্টে একটি কমান্ড ঘোষণা এবং নিম্নলিখিত উদাহরণে দেখানো হিসাবে একটি লিসেনার রেজিস্ট্রেশন প্রয়োজন।

manifest.json:

{
  "name": "Command demo - basic",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "service-worker.js"
  },
  "commands": {
    "inject-script": {
      "suggested_key": "Ctrl+Shift+Y",
      "description": "Inject a script on the page"
    }
  }
}

service-worker.js:

chrome.commands.onCommand.addListener((command) => {
  console.log(`Command "${command}" triggered`);
});

অ্যাকশন কমান্ড

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

manifest.json:

{
  "name": "Commands demo - action invocation",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "service-worker.js"
  },
  "permissions": ["activeTab", "scripting"],
  "action": {},
  "commands": {
    "_execute_action": {
      "suggested_key": {
        "default": "Ctrl+U",
        "mac": "Command+U"
      }
    }
  }
}

service-worker.js:

chrome.action.onClicked.addListener((tab) => {
  chrome.scripting.executeScript({
    target: {tabId: tab.id},
    func: contentScriptFunc,
    args: ['action'],
  });
});

function contentScriptFunc(name) {
  alert(`"${name}" executed`);
}

// This callback WILL NOT be called for "_execute_action"
chrome.commands.onCommand.addListener((command) => {
  console.log(`Command "${command}" called`);
});

রেজিস্টার করা কমান্ড যাচাই করা

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

service-worker.js:

chrome.runtime.onInstalled.addListener((reason) => {
  if (reason === chrome.runtime.OnInstalledReason.INSTALL) {
    checkCommandShortcuts();
  }
});

// Only use this function during the initial install phase. After
// installation the user may have intentionally unassigned commands.
function checkCommandShortcuts() {
  chrome.commands.getAll((commands) => {
    let missingShortcuts = [];

    for (let {name, shortcut} of commands) {
      if (shortcut === '') {
        missingShortcuts.push(name);
      }
    }

    if (missingShortcuts.length > 0) {
      // Update the extension UI to inform the user that one or more
      // commands are currently unassigned.
    }
  });
}

ধরন

Command

প্রপার্টি

  • বর্ণনা

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

    এক্সটেনশন কমান্ডের বিবরণ

  • নাম

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

    এক্সটেনশন কমান্ডের নাম

  • শর্টকাট

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

    এই কমান্ডের জন্য শর্টকাট অ্যাক্টিভ আছে, অ্যাক্টিভ না থাকলে ফাঁকা দেখাবে।

পদ্ধতি

getAll()

প্রতিশ্রুতি
chrome.commands.getAll(
  callback?: function,
)
: Promise<Command[]>

এই এক্সটেনশনের জন্য রেজিস্টার করা সব এক্সটেনশন কমান্ড এবং তাদের শর্টকাট (অ্যাক্টিভ থাকলে) ফিরিয়ে দেয়। Chrome 110-এর আগে, এই কমান্ড _execute_action ফিরিয়ে দেয়নি।

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

  • কলব্যাক

    ফাংশন ঐচ্ছিক

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

    (commands: Command[]) => void

রিটার্ন

  • Promise<Command[]>

    Chrome 96+

    রেজিস্টার করা কমান্ডের তালিকা সহ সমাধান করে।

    Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মের ক্ষেত্রে কলব্যাক ব্যবহার করতে হবে।

ইভেন্ট

onCommand

chrome.commands.onCommand.addListener(
  callback: function,
)

কীবোর্ড শর্টকাট ব্যবহার করে রেজিস্টার করা কমান্ড অ্যাক্টিভেট করা হলে ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

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

    (command: string, tab?: tabs.Tab) => void

    • কমান্ড

      স্ট্রিং

    • ট্যাব

      tabs.Tab ঐচ্ছিক