Chrome এক্সটেনশান: এটিকে প্রতিটি পৃষ্ঠা লোড চালানো করুন Make


91

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


কেবলমাত্র ব্রাউজারে কোনও পৃষ্ঠা লোড হওয়ার পরে স্ক্রিপ্টটি চালানো উচিত।
আলবার্তোশ

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

উত্তর:


92

একটি পটভূমি স্ক্রিপ্ট থেকে আপনি chrome.tabs.onUpdatedইভেন্টটি শুনতে এবং changeInfo.statusকলব্যাকের সম্পত্তিটি পরীক্ষা করতে পারেন । এটি লোডিং বা সম্পূর্ণ হতে পারে । এটি সম্পূর্ণ হলে , ক্রিয়াটি করুন।

উদাহরণ:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {

    // do your things

  }
})

Because this will probably trigger on every tab completion, you can also check if the tab is active on its homonymous attribute, like this:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

    // do your things

  }
})

8
Uncaught TypeError: Cannot read property 'onUpdated' of undefined
Green

2
What? This answer is from 2 and a half years ago. Everything has probably changed now.
fiatjaf

1
For doing specific url page: if (tab.url.startsWith("https://example.com") == false) return;
Nabi K.A.Z.

47

If it needs to run on the onload event of the page, meaning that the document and all its assets have loaded, this needs to be in a content script embedded in each page for which you wish to track onload.


14
It would be better to let the content script be injected at "document_end" see "run_at" within the content_script manifest: run_at: "document_end"
Mohamed Mansour


11

This code should do it:

manifest.json

   {
      "name": "Alert 'hello world!' on page opening",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["content.js"]
        }
      ]
    }

content.js

alert('Hello world!')

is it possible to use regexp in "matches" field?
Bootuz

Yes, see https://developer.chrome.com/extensions/content_scripts#matchAndGlob
Dean Meehan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.