ปฏิสัมพันธ์กับเบราว์เซอร์
1. บุ๊กมาร์ก
ใช้โมดูล Chrome.BookMarks เพื่อสร้างจัดระเบียบและจัดการบุ๊กมาร์ก ดูหน้าแทนที่เพื่อสร้างหน้าผู้จัดการบุ๊คมาร์คที่ปรับแต่งได้
1.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["บุ๊กมาร์ก"], ... }วัตถุและคุณสมบัติ:
สัญญาณถูกจัดระเบียบในโครงสร้างต้นไม้และแต่ละโหนดเป็นบุ๊คมาร์คหรือกลุ่มของโหนด (โฟลเดอร์บุ๊คมาร์คแต่ละโฟลเดอร์สามารถมีหลายโหนด) แต่ละโหนดสอดคล้องกับวัตถุบุ๊คมาร์ครีนีด
คุณสมบัติของบุ๊กมาร์กทรีนีดสามารถใช้งานได้ผ่าน Chrome.BookMarks API
ตัวอย่าง:
สร้างโฟลเดอร์บุ๊คมาร์คชื่อ "ส่วนขยายบุ๊คมาร์ค"
chrome.bookmarks.create ({'parentid': bookmarkbar.id, 'title': 'ส่วนขยายบุ๊คมาร์ค'}, ฟังก์ชั่น (newfolder) {console.log ("โฟลเดอร์ที่เพิ่ม:" + newfolder.title);});สร้างบุ๊คมาร์คไปยังเอกสารการพัฒนาแบบขยาย
chrome.bookmarks.create ({'parentid': extensionsFolderId, 'title': 'ส่วนขยายเอกสาร', 'url': 'http://code.google.com/chrome/extensions'});2. คุกกี้
2.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["คุกกี้", "*: //* gogle.com"], ... }3. เครื่องมือนักพัฒนาซอฟต์แวร์
โมดูล API ต่อไปนี้ให้อินเทอร์เฟซบางอย่างสำหรับเครื่องมือนักพัฒนาเพื่อให้คุณสามารถขยายเครื่องมือนักพัฒนาได้
(1) Devtools.inspectedWindow
(2) devtools.network
(3) devtools.panels
3.1. การกำหนดค่าใน manifest.json
{"ชื่อ": ... "เวอร์ชัน": "1.0", "minimum_chrome_version": "10.0", "devtools_page": "devtools.html", ... }4. เหตุการณ์
เหตุการณ์เป็นวัตถุที่แจ้งให้คุณทราบเมื่อสิ่งที่คุณกังวลเกี่ยวกับการเกิดขึ้น นี่คือตัวอย่างของการใช้เหตุการณ์ chrome.tabs.oncreated และวัตถุเหตุการณ์จะได้รับแจ้งเมื่อใดก็ตามที่มีการสร้างแท็กใหม่:
chrome.tabs.oncreated.addlistener (ฟังก์ชั่น (แท็บ) {appendtolog ('tabs.oncreated -' + 'หน้าต่าง:' + tab.windowid + 'แท็บ:' + tab.id + 'ดัชนี:' + tab.index + 'url:' + tab.url);});คุณสามารถเรียกวิธีการต่อไปนี้ของวัตถุเหตุการณ์ใด ๆ :
เป็นโมฆะ addListener (ฟังก์ชั่นการโทรกลับ (... ))) void removelistener (ฟังก์ชั่นการโทรกลับ (... )) bool haslistener (ฟังก์ชั่นการโทรกลับ (... ))))
5. ประวัติการเรียกดู
โมดูล chorme.history ใช้เพื่อโต้ตอบกับบันทึกหน้าเข้าถึงโดยเบราว์เซอร์ คุณสามารถเพิ่มลบและค้นหาประวัติเบราว์เซอร์
5.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["ประวัติศาสตร์"], ... }6. การจัดการปลั๊กอิน
โมดูล Chrome.Management เป็นวิธีการจัดการส่วนขยายหรือการใช้งานส่วนขยายหรือแอปพลิเคชัน มีประโยชน์อย่างยิ่งสำหรับการเขียนส่วนขยายที่มีแท็บใหม่ในตัว
ในการใช้ API นี้คุณต้องอนุญาตในไฟล์ Extension Manifest
6.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["การจัดการ"], ... }7. แท็ก
โมดูลแท็ก Chrome ใช้เพื่อโต้ตอบกับระบบแท็กของเบราว์เซอร์ โมดูลนี้ใช้เพื่อสร้างแก้ไขและจัดเรียงแท็กใหม่ในเบราว์เซอร์
7.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["แท็บ"], ... }8. หน้าต่าง
ใช้โมดูล Chrome.Windows เพื่อโต้ตอบกับหน้าต่างเบราว์เซอร์ คุณสามารถใช้โมดูลนี้เพื่อสร้างแก้ไขและจัดเรียงหน้าต่างใหม่ในเบราว์เซอร์ของคุณ
8.1. การกำหนดค่าใน manifest.json
{"ชื่อ": "ส่วนขยายของฉัน", ... "สิทธิ์": ["แท็บ"], ... }การดำเนินการแจ้งเตือน
1. สองวิธีในการสร้างการแจ้งเตือน:
// หมายเหตุ: ไม่จำเป็นต้องโทรหา webKitNotifications.CheckPermission () // ส่วนขยายที่ประกาศการแจ้งเตือนอนุญาตให้มีการสร้างการแจ้งเตือนเสมอ // สร้างการแจ้งเตือนข้อความอย่างง่าย: การแจ้งเตือน var = webKitNotifications.createnotification ('48 .png ', // url ไอคอนสามารถเป็นเส้นทางสัมพัทธ์' สวัสดี! ', // ชื่อการแจ้งเตือน' (lorem ipsum ... ) // URL ของ HTML สามารถเป็นเส้นทางสัมพัทธ์); // จากนั้นแสดงการแจ้งเตือน การแจ้งเตือน. show ();2. วิธีการสื่อสารกับหน้าอื่น ๆ :
// ในการแจ้งเตือน ... chrome.extension.getBackgroundPage (). dothing (); // จากหน้าเว็บพื้นหลัง ... chrome.extension.getViews ({ประเภท: "การแจ้งเตือน"}). foreach (ฟังก์ชั่น (win) {win.dootherthing ();});3. ตัวอย่างของการแจ้งเตือนเวลา
มาสร้างการแจ้งเตือนเวลากันเถอะซึ่งจะทำให้เกิดการแจ้งเตือนเวลาทุก ๆ 10 วินาทีและรวม 10 เท่า
3.1. Manifest.json
{// ฟิลด์นี้จะถูกใช้ในกล่องโต้ตอบการติดตั้งส่วนต่อประสานการจัดการส่วนขยายและร้านค้า ชื่อของการแจ้งเตือนแบบป๊อปอัพคือ "ชื่อ": "การแจ้งเตือนระบบ", // เวอร์ชันขยายถูกแสดงด้วยตัวเลขหนึ่งถึง 4 หมายเลขคั่นด้วยจุดและต้องอยู่ระหว่าง 0 ถึง 65535 ตัวเลขที่ไม่ใช่ศูนย์ไม่สามารถเริ่มต้นด้วย "เวอร์ชัน": "1", // สตริงที่อธิบายประเภทขยาย (ไม่สามารถเป็น HTML คำอธิบายนี้จะต้องเหมาะสมสำหรับทั้งอินเทอร์เฟซการจัดการของเบราว์เซอร์และ Chrome Web Store "คำอธิบาย": "แสดงการแจ้งเตือนเดสก์ท็อปซึ่งคือ /" ขนมปังปิ้ง /"หน้าต่างที่ปรากฏขึ้นบนเดสก์ท็อป" // ไอคอนหนึ่งหรือมากกว่าหนึ่งรายการเพื่อแสดงส่วนขยายแอพและสกินไอคอน ": {" 16 ":" 16.png " "128.png" // ใช้เมื่อติดตั้ง webstore}, // ชุดของการอนุญาตที่ส่วนขยายหรือแอพจะใช้ "การอนุญาต": ["แท็บ", "การแจ้งเตือน"], // manifest v2 แทนที่พื้นหลัง _page ด้วยแอตทริบิวต์พื้นหลัง // Chrome 18 และควรระบุเป็น 2 "Manifest_version": 2, // manifest_version 2. ระบุเส้นทางทรัพยากรที่สามารถใช้ในหน้าเว็บในแพ็คเกจส่วนขยาย (สัมพันธ์กับไดเรกทอรีรากของแพ็คเกจส่วนขยาย) ที่จำเป็นต้องใช้ สคริปต์เนื้อหาที่แทรกตัวเองไม่จำเป็นต้องได้รับการอนุญาต "web_accessible_resources": ["48.png"]}3.2. background.js
/** * แสดงการแจ้งเตือนเวลา */ฟังก์ชั่นแสดง () {var time = วันที่ใหม่ (). รูปแบบ ('yyyy-mm-dd hh: mm: ss'); // สร้างการแจ้งเตือน var notification = window.webkitNotifications.createnotification ('48 .png ', // รูปภาพเพิ่ม' เวลาปัจจุบันใน web_accessible_resources: ', // เวลาชื่อ // body.); // แสดงการแจ้งเตือนการแจ้งเตือน. show ();} // จัดรูปแบบวันที่ฟังก์ชั่นเวลา prototype.format = function (รูปแบบ) {var o = {"m+": this.getMonth ()+1, // month "d+": this.getDate (), // วันนี้ this.getSeconds (), // วินาที "q+": math.floor ((this.getMonth ()+3)/3), // quarter "s": this.getMilliseconds () // มิลลิวินาที} ถ้า (/(y+)/. การทดสอบ (รูปแบบ)) รูปแบบ = รูปแบบ regexp. $ 1. ความยาว)); สำหรับ (var k ใน o) ถ้า (ใหม่ regexp ("("+ k+ ")"). การทดสอบ (รูปแบบ)) รูปแบบ = รูปแบบ. regeplace (regexp. $ 1, regexp. $ 1.length == 1? o [k]: ("00"+ o [k]) รูปแบบ return;} // ทดสอบว่าเบราว์เซอร์รองรับ webKitNotificationsif (window.webkitNotifications) {// แสดงการแจ้งเตือนแสดง (); ช่วงเวลา var = 0; // ป๊อปอัพ 10 ครั้ง var times = 10; // สร้างตัวจับเวลาตัวจับเวลาตัวจับเวลา = setInterval (function () {Interval ++; // pop-up หนึ่งครั้งใน 10 วินาทีถ้า (10 <= Interval) {show (); Interval = 0; ครั้ง-; ถ้า (เวลา <-0) ClearInterval (ตัวจับเวลา);}}, 1000);};รหัสต้นฉบับ
https://github.com/artinking/google-plugins/tree/master/example/notifications