本篇文章是透過 ChatGPT 產生後經過實際操作正確運行,善用工具可以協助更快速時間想法與概念。
我的目標與動作描述: 請幫我開發一個google extension v3
- 點 extension icon 會跳出一個html並且在上下左右邊距大概100px 按鈕在正中間 “取得當前網址”
- 點了之後會取得當前網址並且 alert 出來
這邊有兩個知識點,由於我在這之前已經有開發過 google extension 經驗,所以大概知道結構邏輯; 實際細節已經有點遺忘了,僅記得是透過 append 和 permission 型態: minifest 來宣告,也就是說在請 ChatGPT 協助之前先行的知識還是要有的,了解的越清楚實作與協作起來會更快更精準。
建立 manifest.json 檔案
manifest.json 檔案用來定義擴充功能的設定,包括擴充功能名稱、版本、圖示、權限等等。請參考以下範例:
{
"name": "Get Current URL",
"version": "1.0",
"description": "A Google Chrome Extension to get the current URL of the active tab",
"manifest_version": 3,
"action": {
"default_popup": "popup.html"
},
"permissions": ["activeTab"]
}
建立 popup.html 檔案
popup.html 檔案用來定義擴充功能點擊 icon 後彈出的視窗,包括取得當前網址的按鈕。請參考以下範例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Get Current URL</title>
<style>
body {
margin: 100px;
}
button {
display: block;
margin: 0 auto;
}
</style>
</head>
<body>
<button id="get-current-url">取得當前網址</button>
<script src="popup.js"></script>
</body>
</html>
建立 popup.js 檔案
popup.js 檔案用來定義點擊取得當前網址的按鈕後的行為,即取得當前網址並且 alert 出來。請參考以下範例:
document.addEventListener("DOMContentLoaded", function () {
const getCurrentUrlButton = document.getElementById("get-current-url");
getCurrentUrlButton.addEventListener("click", function () {
chrome.tabs.query({ active: true, lastFocusedWindow: true }, function (tabs) {
const url = tabs[0].url;
alert(url);
});
});
});
成果