Matlamat semasa saya ialah untuk mencipta sambungan Chrome ringkas yang menggunakan keupayaan latar belakang rangka kerja sambungan.
Untuk meringkaskan, skrip latar belakang beroperasi sebagai pekerja perkhidmatan, terutamanya direka untuk mengendalikan tugas yang tidak memerlukan interaksi pengguna langsung.
Salah satu peranan utamanya ialah bertindak sebagai hab komunikasi atau pengendali acara, berfungsi sebagai satu-satunya komponen yang berterusan dan boleh dipercayai dalam seni bina sambungan penyemak imbas. Tidak seperti skrip kandungan, tetingkap timbul atau halaman pilihan, yang bersifat sementara, pekerja perkhidmatan latar belakang memastikan kesinambungan dengan memulakan semula secara automatik apabila ditamatkan untuk mengendalikan acara masuk.
Saya merancang untuk memanfaatkan keupayaan skrip latar belakang ini sebagai pengawal pusat untuk sambungan saya.
Kes penggunaan
Pelanjutan Chrome pertama ini agak mudah. Ia akan mendengar klik pada ikon tindakan sambungan dan bertindak balas dengan mencetuskan tingkah laku seperti rolet. Rolet akan secara berurutan mengaktifkan tab yang sedang dibuka dalam penyemak imbas pengguna untuk tempoh yang singkat sehingga satu tab dibiarkan dipilih secara rawak.
Seperti yang anda lihat, sambungan ini tidak mempunyai tujuan praktikal tetapi bertujuan semata-mata sebagai latihan pembelajaran.
Manifes
{ "name": "TabRoulette", "version": "0.0.1", "manifest_version": 3, "icons": { "16": "images/icon16.png", "32": "images/icon32.png", "48": "images/icon32.png", "128": "images/icon128.png" }, "action": { "default_title": "Click to start", "default_icon": { "16": "images/icon16.png", "24": "images/icon24.png", "32": "images/icon32.png" } }, "background": { "service_worker": "background.js" } }
Selain ikon yang dinyatakan dalam manifes untuk digunakan dalam Kedai Web Chrome dan antara muka pengurusan sambungan, penambahan paling ketara ialah atribut tindakan. Atribut ini mengkonfigurasi tingkah laku sambungan apabila ikon bar alat diklik. Dalam kes kami, ia mengarahkan pekerja perkhidmatan untuk memulakan rolet tab semasa interaksi pengguna.
Untuk mengambil kira
Kod saya menggunakan import ES, tetapi seperti yang ditunjukkan sebelum ini, service_worker tidak diisytiharkan secara eksplisit sebagai modul. Bagaimanakah ia masih berfungsi?
"background": { "service_worker": "service-worker.js", "type": "module" }
Import ini dikendalikan dan diselesaikan oleh Vite semasa proses penggabungan.
Latar belakang
Seperti yang dinyatakan sebelum ini, skrip latar belakang akan mendengar klik pada ikon tindakan dan memulakan rolet tab sebagai tindak balas.
chrome.action.onClicked.addListener(async () => { ... })
Aspek utama logik pendengar untuk diserlahkan: Pertama, saya perlu mengumpulkan semua tab yang sedang dibuka dalam tetingkap aktif. Ini penting kerana kod saya memerlukan rujukan kepada tab ini untuk mengitarnya secara berurutan.
const currentWindow = await chrome.windows.getCurrent(); const windowTabs = await chrome.tabs.query({ windowId: currentWindow.id, });
Saya pada mulanya keliru apabila menggunakan chrome.tabs.query tanpa menyatakan windowId, kerana ia mengembalikan semua tab merentas semua tetingkap penyemak imbas yang terbuka, sedangkan saya hanya mahukan tab dari tetingkap aktif. Ini membawa kepada keputusan yang tidak dijangka kerana bilangan tab yang lebih besar dalam senarai.
Setelah saya memahami tingkah laku ini, mengaktifkan tab secara berurutan menjadi mudah. Ia hanya melibatkan pengemaskinian sifat tab untuk menetapkan setiap satu sebagai aktif dalam urutan sehingga tab rawak akhirnya dipilih.
{ "name": "TabRoulette", "version": "0.0.1", "manifest_version": 3, "icons": { "16": "images/icon16.png", "32": "images/icon32.png", "48": "images/icon32.png", "128": "images/icon128.png" }, "action": { "default_title": "Click to start", "default_icon": { "16": "images/icon16.png", "24": "images/icon24.png", "32": "images/icon32.png" } }, "background": { "service_worker": "background.js" } }
Satu lagi matlamat yang ingin saya capai ialah melaraskan rentak tab diaktifkan—bermula dengan pantas dan perlahan hingga ke penghujung. Untuk mencapai ini, fungsi setInterval asli yang saya gunakan dalam ujian awal tidak mencukupi. Sebaliknya, saya melaksanakan utiliti kecil yang membolehkan saya membuat selang boleh laras, menyediakan cara untuk mengubah suai masanya secara dinamik mengikut keperluan.
"background": { "service_worker": "service-worker.js", "type": "module" }
Dan itu sahaja—sambungan ringkas dengan kes penggunaan yang menyeronokkan, berfungsi sebagai alasan untuk menyelidiki lebih dalam dunia sambungan penyemak imbas. Saya juga berkongsi kod sumber dengan anda jika anda ingin tahu tentang butirannya.
Oh, dan saya juga menggunakan projek ini untuk meneroka proses penerbitan, yang saya dapati agak mudah. Sekarang, saya hanya menunggu semakan dan penerbitan akhir.
https://github.com/ivaneffable/tabRoulette
Atas ialah kandungan terperinci Tab Roulette - sambungan pertama saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Sama ada untuk memilih Python atau JavaScript bergantung kepada jenis projek: 1) Pilih Python untuk Sains Data dan Tugas Automasi; 2) Pilih JavaScript untuk pembangunan front-end dan penuh. Python disukai untuk perpustakaannya yang kuat dalam pemprosesan data dan automasi, sementara JavaScript sangat diperlukan untuk kelebihannya dalam interaksi web dan pembangunan stack penuh.

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Dreamweaver CS6
Alat pembangunan web visual

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.
