ব্রাউজার.ওয়েবনেভিগেশন

বর্ণনা

চলমান নেভিগেশন অনুরোধগুলোর অবস্থা সম্পর্কে বিজ্ঞপ্তি পেতে chrome.webNavigation API ব্যবহার করুন।

অনুমতি

webNavigation

browser.webNavigation সকল মেথড এবং ইভেন্টের জন্য আপনাকে এক্সটেনশন ম্যানিফেস্টে "webNavigation" পারমিশনটি ঘোষণা করতে হবে। উদাহরণস্বরূপ:

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

ধারণা এবং ব্যবহার

ঘটনার ক্রম

সফলভাবে সম্পন্ন হওয়া নেভিগেশনের জন্য, ইভেন্টগুলো নিম্নলিখিত ক্রমে ফায়ার হয়:

onBeforeNavigate -> onCommitted -> [onDOMContentLoaded] -> onCompleted

প্রক্রিয়া চলাকালীন যেকোনো ত্রুটি ঘটলে একটি onErrorOccurred ইভেন্ট ঘটে। একটি নির্দিষ্ট নেভিগেশনের ক্ষেত্রে, onErrorOccurred পরে আর কোনো ইভেন্ট ফায়ার হয় না।

যদি কোনো নেভিগেটিং ফ্রেমে সাবফ্রেম থাকে, তবে এর onCommitted এর যেকোনো চাইল্ড ফ্রেমের onBeforeNavigate ইভেন্টের আগে ফায়ার হয়; অপরদিকে, onCompleted ইভেন্টটি এর সমস্ত চাইল্ড ফ্রেমের onCompleted পরে ফায়ার হয়।

যদি কোনো ফ্রেমের রেফারেন্স ফ্র্যাগমেন্ট পরিবর্তিত হয়, তাহলে একটি onReferenceFragmentUpdated ইভেন্ট ফায়ার হয়। এই ইভেন্টটি onDOMContentLoaded পরে যেকোনো সময়, এমনকি onCompleted পরেও ফায়ার হতে পারে।

যদি কোনো ফ্রেমের অবস্থা পরিবর্তন করার জন্য হিস্ট্রি এপিআই ব্যবহার করা হয় (যেমন history.pushState() , তাহলে একটি onHistoryStateUpdated ইভেন্ট ফায়ার হয়। এই ইভেন্টটি onDOMContentLoaded পরে যেকোনো সময় ফায়ার হতে পারে।

যদি কোনো নেভিগেশন ব্যাক ফরওয়ার্ড ক্যাশ থেকে একটি পেজ পুনরুদ্ধার করে, তাহলে onDOMContentLoaded ইভেন্টটি ফায়ার হবে না। ইভেন্টটি ফায়ার হয় না কারণ পেজটি প্রথমবার ভিজিট করার সময়ই কন্টেন্টের লোড সম্পন্ন হয়ে যায়।

যদি Chrome Instant বা Instant Pages ব্যবহার করে কোনো নেভিগেশন চালু করা হয়, তাহলে সম্পূর্ণ লোড হওয়া একটি পেজ বর্তমান ট্যাবে চলে আসে। সেক্ষেত্রে, একটি onTabReplaced ইভেন্ট ফায়ার হয়।

webRequest ইভেন্টগুলির সাথে সম্পর্ক

webRequest API এবং webNavigation API-এর ইভেন্টগুলোর মধ্যে কোনো নির্দিষ্ট ক্রম নেই। এমনটা হতে পারে যে, যে ফ্রেমগুলোতে ইতিমধ্যেই নতুন নেভিগেশন শুরু হয়ে গেছে, সেগুলোর জন্যও webRequest ইভেন্ট পাওয়া যায়, অথবা নেটওয়ার্ক রিসোর্স সম্পূর্ণরূপে লোড হওয়ার পরেই কেবল নেভিগেশনটি অগ্রসর হয়।

সাধারণত, webNavigation ইভেন্টগুলো UI-তে প্রদর্শিত ন্যাভিগেশন অবস্থার সাথে ঘনিষ্ঠভাবে সম্পর্কিত, অন্যদিকে webRequest ইভেন্টগুলো নেটওয়ার্ক স্ট্যাকের অবস্থার সাথে সম্পর্কিত যা সাধারণত ব্যবহারকারীর কাছে অস্পষ্ট থাকে।

ট্যাব আইডি

নেভিগেট করা সব ট্যাবই ক্রোমের UI-এর আসল ট্যাবের সাথে মেলে না; যেমন, একটি প্রি-রেন্ডার হওয়া ট্যাব। এই ধরনের ট্যাবগুলো ট্যাব এপিআই (tabs API) ব্যবহার করে অ্যাক্সেস করা যায় না, এবং webNavigation.getFrame() বা webNavigation.getAllFrames() কল করেও সেগুলোর সম্পর্কে তথ্য চাওয়া যায় না। যখন এই ধরনের কোনো ট্যাব সোয়াপ-ইন করা হয়, তখন একটি onTabReplaced ইভেন্ট ফায়ার হয় এবং সেগুলো এই এপিআইগুলোর মাধ্যমে অ্যাক্সেসযোগ্য হয়ে ওঠে।

টাইমস্ট্যাম্প

এটা মনে রাখা গুরুত্বপূর্ণ যে timeStamp অপারেটিং সিস্টেমের স্বতন্ত্র ক্রোম প্রসেসগুলো পরিচালনার ক্ষেত্রে কিছু প্রযুক্তিগত অদ্ভুততার কারণে ব্রাউজার এবং এক্সটেনশন প্রসেসগুলোর মধ্যে ঘড়ির সময়ে অসামঞ্জস্য দেখা দিতে পারে। এর মানে হলো, WebNavigation ইভেন্টের timeStamp প্রপার্টিটি শুধুমাত্র অভ্যন্তরীণভাবে সামঞ্জস্যপূর্ণ থাকার নিশ্চয়তা দেয়। একটি ইভেন্টের সাথে অন্য একটি ইভেন্টের তুলনা করলে আপনি তাদের মধ্যে সঠিক অফসেট পাবেন, কিন্তু এক্সটেনশনের ভেতরের বর্তমান সময়ের সাথে তুলনা করলে (উদাহরণস্বরূপ, (new Date()).getTime() ব্যবহার করে) অপ্রত্যাশিত ফলাফল আসতে পারে।

ফ্রেম আইডি

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

ক্রোমের মাল্টি-প্রসেস বৈশিষ্ট্যের কারণে, একটি ট্যাব কোনো ওয়েব পেজের উৎস এবং গন্তব্য রেন্ডার করার জন্য ভিন্ন ভিন্ন প্রসেস ব্যবহার করতে পারে। সুতরাং, যদি একটি নতুন প্রসেসে নেভিগেশন সম্পন্ন হয়, তাহলে নতুন নেভিগেশনটি কমিট না হওয়া পর্যন্ত (অর্থাৎ নতুন মেইন ফ্রেমের জন্য onCommitted ইভেন্টটি পাঠানো না হওয়া পর্যন্ত) আপনি নতুন এবং পুরোনো উভয় পেজ থেকেই ইভেন্ট পেতে পারেন। অন্য কথায়, একই frameId অধীনে webNavigation ইভেন্টের একাধিক অপেক্ষমান ক্রম থাকা সম্ভব। এই ক্রমগুলোকে processId কী-এর মাধ্যমে আলাদা করা যায়।

আরও মনে রাখবেন যে, একটি সাময়িক লোডের সময় প্রসেসটি একাধিকবার পরিবর্তিত হতে পারে। লোডটি যখন অন্য কোনো সাইটে পুনঃনির্দেশিত হয়, তখন এমনটা ঘটে। এই ক্ষেত্রে, চূড়ান্ত onCommitted ইভেন্টটি না পাওয়া পর্যন্ত আপনি বারবার onBeforeNavigate এবং onErrorOccurred ইভেন্ট পেতে থাকবেন।

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

রূপান্তরের প্রকারভেদ এবং যোগ্যতা

webNavigation এর onCommitted ইভেন্টের একটি transitionType এবং একটি transitionQualifiers প্রপার্টি রয়েছে। ট্রানজিশন টাইপটি হিস্ট্রি এপিআই- তে ব্যবহৃত ধরনেরই, যা বর্ণনা করে ব্রাউজারটি কীভাবে এই নির্দিষ্ট ইউআরএল-টিতে নেভিগেট করেছে। এছাড়াও, নেভিগেশনকে আরও সুনির্দিষ্ট করার জন্য বেশ কিছু ট্রানজিশন কোয়ালিফায়ার রিটার্ন করা যেতে পারে।

নিম্নলিখিত রূপান্তর কোয়ালিফায়ারগুলো বিদ্যমান:

রূপান্তর যোগ্যতা বর্ণনা
"ক্লায়েন্ট_পুনঃনির্দেশ" ন্যাভিগেশনের সময় পেজে থাকা জাভাস্ক্রিপ্ট বা মেটা রিফ্রেশ ট্যাগের কারণে এক বা একাধিক রিডাইরেক্ট ঘটেছে।
"সার্ভার_পুনঃনির্দেশ" ন্যাভিগেশন চলাকালীন সার্ভার থেকে পাঠানো HTTP হেডারের কারণে এক বা একাধিক রিডাইরেক্ট ঘটেছে।
"সামনে_পিছনে" ব্যবহারকারী নেভিগেশন শুরু করার জন্য ফরওয়ার্ড বা ব্যাক বাটন ব্যবহার করেছেন।
"from_address_bar" ব্যবহারকারী অ্যাড্রেস বার (যা অমনিবক্স নামেও পরিচিত) থেকে নেভিগেশন শুরু করেছেন।

উদাহরণ

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

প্রকারভেদ

TransitionQualifier

ক্রোম ৪৪+

এনাম

"ক্লায়েন্ট_পুনঃনির্দেশ"

"সার্ভার_পুনঃনির্দেশ"

"সামনে_পিছনে"

"from_address_bar"

TransitionType

ক্রোম ৪৪+

ন্যাভিগেশনের কারণ। হিস্ট্রি এপিআই-তে সংজ্ঞায়িত একই ট্রানজিশন টাইপগুলো ব্যবহার করা হয়। এগুলো হিস্ট্রি এপিআই -তে সংজ্ঞায়িত একই ট্রানজিশন টাইপ, তবে (পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যের জন্য) "auto_toplevel" এর পরিবর্তে "start_page" ব্যবহার করা হয়েছে।

এনাম

"লিঙ্ক"

"টাইপ করা"

"স্বয়ংক্রিয়_বুকমার্ক"

"auto_subframe"

"ম্যানুয়াল_সাবফ্রেম"

"উৎপাদিত"

"স্টার্ট_পেজ"

"ফর্ম_জমা"

"পুনরায় লোড করুন"

"কীওয়ার্ড"

"কীওয়ার্ড_জেনারেটেড"

পদ্ধতি

getAllFrames()

chrome.webNavigation.getAllFrames(
  details: object,
)
: Promise<object[] | undefined>

প্রদত্ত ট্যাবের সমস্ত ফ্রেমের তথ্য পুনরুদ্ধার করে।

প্যারামিটার

  • বিস্তারিত

    বস্তু

    যে ট্যাব থেকে সমস্ত ফ্রেম সংগ্রহ করা যাবে, সে সম্পর্কিত তথ্য।

    • ট্যাবআইডি

      সংখ্যা

      ট্যাবটির আইডি।

ফেরত

  • Promise<object[] | undefined>

    ক্রোম ৯৩+

getFrame()

chrome.webNavigation.getFrame(
  details: object,
)
: Promise<object | undefined>

প্রদত্ত ফ্রেম সম্পর্কিত তথ্য পুনরুদ্ধার করে। ফ্রেম বলতে কোনো ওয়েব পেজের একটি <iframe> বা <frame>-কে বোঝায় এবং এটি একটি ট্যাব আইডি ও একটি ফ্রেম আইডি দ্বারা চিহ্নিত করা হয়।

প্যারামিটার

  • বিস্তারিত

    বস্তু

    যে ফ্রেমটি সম্পর্কে তথ্য পুনরুদ্ধার করতে হবে, সেটির তথ্য।

    • ডকুমেন্ট আইডি

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

      ক্রোম ১০৬+

      ডকুমেন্টটির UUID। যদি frameId এবং/অথবা tabId প্রদান করা হয়, তবে প্রদত্ত ডকুমেন্ট আইডি দ্বারা প্রাপ্ত ডকুমেন্টের সাথে মেলানোর জন্য সেগুলোকে যাচাই করা হবে।

    • ফ্রেমআইডি

      সংখ্যা ঐচ্ছিক

      প্রদত্ত ট্যাবে থাকা ফ্রেমটির আইডি।

    • প্রক্রিয়া আইডি

      সংখ্যা ঐচ্ছিক

      ক্রোম ৪৯ থেকে বাতিল করা হয়েছে

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

      যে প্রসেসটি এই ট্যাবের রেন্ডারারটি চালায়, তার আইডি।

    • ট্যাবআইডি

      সংখ্যা ঐচ্ছিক

      যে ট্যাবে ফ্রেমটি রয়েছে, সেই ট্যাবের আইডি।

ফেরত

  • প্রতিশ্রুতি<object | undefined>

    ক্রোম ৯৩+

ইভেন্টগুলি

onBeforeNavigate

chrome.webNavigation.onBeforeNavigate.addListener(
  callback: function,
  filters?: object,
)

নেভিগেশন শুরু হওয়ার ঠিক আগে এটি সক্রিয় হয়।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি নির্দিষ্ট ট্যাব এবং প্রসেসের জন্য ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        ক্রোম ৫০ থেকে বাতিল করা হয়েছে

        এই ইভেন্টের জন্য processId আর সেট করা হয় না, কারণ যে প্রসেসটি ফলাফলস্বরূপ ডকুমেন্টটি রেন্ডার করবে, তা onCommit-এর আগে জানা যায় না।

        -১ এর মান।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশন করা হবে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে সেই সময়, যখন ব্রাউজারটি নেভিগেশন শুরু করতে যাচ্ছিল।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onCommitted

chrome.webNavigation.onCommitted.addListener(
  callback: function,
  filters?: object,
)

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

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি এই ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে, নেভিগেশনটি সম্পন্ন হওয়ার সময়।

      • ট্রানজিশন কোয়ালিফায়ার

        রূপান্তর যোগ্যতাসূচক শব্দসমূহের একটি তালিকা।

      • রূপান্তর প্রকার

        দিকনির্দেশনার কারণ।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onCompleted

chrome.webNavigation.onCompleted.addListener(
  callback: function,
  filters?: object,
)

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

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি এই ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে, ডকুমেন্টটি লোড হওয়া শেষ হওয়ার সময়।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onCreatedNavigationTarget

chrome.webNavigation.onCreatedNavigationTarget.addListener(
  callback: function,
  filters?: object,
)

যখন নেভিগেশন হোস্ট করার জন্য একটি নতুন উইন্ডো, অথবা বিদ্যমান উইন্ডোর মধ্যে একটি নতুন ট্যাব তৈরি করা হয়, তখন এটি ট্রিগার হয়।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • উৎসফ্রেমআইডি

        সংখ্যা

        sourceTabId সহ সেই ফ্রেমের আইডি, যেখানে নেভিগেশনটি চালু হয়। ০ মূল ফ্রেমকে নির্দেশ করে।

      • উৎস প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি সোর্স ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • উৎস ট্যাব আইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি চালু করা হয়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে ইউআরএলটি খোলা হয়েছে তার আইডি

      • টাইমস্ট্যাম্প

        সংখ্যা

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

      • ইউআরএল

        স্ট্রিং

        ইউআরএলটি নতুন উইন্ডোতে খোলা হবে।

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onDOMContentLoaded

chrome.webNavigation.onDOMContentLoaded.addListener(
  callback: function,
  filters?: object,
)

যখন পেজের DOM সম্পূর্ণরূপে নির্মিত হয়ে যায়, কিন্তু উল্লেখিত রিসোর্সগুলো পুরোপুরি লোড নাও হতে পারে, তখন এটি ট্রিগার হয়।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি এই ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে, যে সময়ে পেজটির DOM সম্পূর্ণরূপে নির্মিত হয়েছিল।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onErrorOccurred

chrome.webNavigation.onErrorOccurred.addListener(
  callback: function,
  filters?: object,
)

যখন কোনো ত্রুটি ঘটে এবং নেভিগেশন বাতিল করা হয়, তখন এটি সক্রিয় হয়। এটি ঘটতে পারে যদি কোনো নেটওয়ার্ক ত্রুটি ঘটে, অথবা ব্যবহারকারী নেভিগেশন বাতিল করেন।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ত্রুটি

        স্ট্রিং

        ত্রুটির বিবরণ।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        ক্রোম ৫০ থেকে বাতিল করা হয়েছে

        এই ইভেন্টের জন্য processId আর সেট করা নেই।

        -১ এর মান।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে ত্রুটি ঘটার সময়, যা মিলিসেকেন্ডে পরিমাপ করা হয়েছে।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onHistoryStateUpdated

chrome.webNavigation.onHistoryStateUpdated.addListener(
  callback: function,
  filters?: object,
)

যখন ফ্রেমের হিস্ট্রি একটি নতুন URL-এ আপডেট করা হয়, তখন এটি ট্রিগার হয়। ঐ ফ্রেমের জন্য ভবিষ্যতের সমস্ত ইভেন্ট আপডেট করা URL-টি ব্যবহার করবে।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি এই ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে, নেভিগেশনটি সম্পন্ন হওয়ার সময়।

      • ট্রানজিশন কোয়ালিফায়ার

        রূপান্তর যোগ্যতাসূচক শব্দসমূহের একটি তালিকা।

      • রূপান্তর প্রকার

        দিকনির্দেশনার কারণ।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onReferenceFragmentUpdated

chrome.webNavigation.onReferenceFragmentUpdated.addListener(
  callback: function,
  filters?: object,
)

যখন কোনো ফ্রেমের রেফারেন্স ফ্র্যাগমেন্ট আপডেট করা হয়, তখন এটি ট্রিগার হয়। ঐ ফ্রেমের জন্য ভবিষ্যতের সমস্ত ইভেন্টে আপডেট করা URL-টি ব্যবহৃত হবে।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • ডকুমেন্ট আইডি

        স্ট্রিং

        ক্রোম ১০৬+

        লোড করা ডকুমেন্টটির UUID।

      • ক্রোম ১০৬+

        ডকুমেন্টটি যে জীবনচক্রে রয়েছে।

      • ফ্রেমআইডি

        সংখ্যা

        ০ নির্দেশ করে যে নেভিগেশন ট্যাব কন্টেন্ট উইন্ডোতে সংঘটিত হয়; একটি ধনাত্মক মান সাবফ্রেমে নেভিগেশন নির্দেশ করে। একটি ট্যাবের মধ্যে ফ্রেম আইডিগুলো অনন্য হয়।

      • ক্রোম ১০৬+

        যে ধরনের ফ্রেমে নেভিগেশনটি সংঘটিত হয়েছিল।

      • প্যারেন্টডকুমেন্টআইডি

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

        ক্রোম ১০৬+

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

      • parentFrameId

        সংখ্যা

        ক্রোম ৭৪+

        প্যারেন্ট ফ্রেমের আইডি, অথবা এটি মূল ফ্রেম হলে -1

      • প্রক্রিয়া আইডি

        সংখ্যা

        যে প্রসেসটি এই ফ্রেমের জন্য রেন্ডারার চালায়, তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

        যে ট্যাবে নেভিগেশনটি ঘটে, তার আইডি।

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে, নেভিগেশনটি সম্পন্ন হওয়ার সময়।

      • ট্রানজিশন কোয়ালিফায়ার

        রূপান্তর যোগ্যতাসূচক শব্দসমূহের একটি তালিকা।

      • রূপান্তর প্রকার

        দিকনির্দেশনার কারণ।

      • ইউআরএল

        স্ট্রিং

  • ফিল্টার

    বস্তু ঐচ্ছিক

    • যে URL-টিতে নেভিগেট করা হচ্ছে, সেটিকে অবশ্যই যে শর্তগুলো পূরণ করতে হবে। এই ইভেন্টের জন্য UrlFilter-এর 'schemes' এবং 'ports' ফিল্ডগুলো উপেক্ষা করা হয়।

onTabReplaced

chrome.webNavigation.onTabReplaced.addListener(
  callback: function,
)

যখন ট্যাবের বিষয়বস্তু একটি ভিন্ন (সাধারণত পূর্বে প্রি-রেন্ডার করা) ট্যাব দ্বারা প্রতিস্থাপিত হয়, তখন এটি কার্যকর হয়।

প্যারামিটার

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

    • বিস্তারিত

      বস্তু

      • প্রতিস্থাপিত ট্যাবআইডি

        সংখ্যা

        যে ট্যাবটি প্রতিস্থাপন করা হয়েছিল তার আইডি।

      • ট্যাবআইডি

        সংখ্যা

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

      • টাইমস্ট্যাম্প

        সংখ্যা

        ইপক থেকে মিলিসেকেন্ডে প্রতিস্থাপনটি ঘটার সময়।