我尝试制作一个chrome扩展程序,可以提供当前窗口当前选项卡的URL字符串。 我曾见过类似的问题,但不知道为什么我的工作没有。 我也照顾过不推荐的电话。 Here it is
我甚至在manifest.json文件中正确设置了权限。 但它不起作用。 这是主要的js文件代码
// background.js
chrome.browserAction.onClicked.addListener(function(tab) {
// Send a message to the active tab
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
var activeTab = tabs[0];
chrome.tabs.sendMessage(activeTab.id, {"message": "clicked_browser_action"});
});
});
// content.js
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if( request.message === "clicked_browser_action" ) {
var firstHref = $("a[href^='http']").eq(0).attr("href");
//console.log(firstHref);
alert(firstHref);
}
}
);
有人能帮助我吗?
答案 0 :(得分:1)
您没有在清单文件中添加HTML文件,因为您的项目无法正常工作, 在你的manifest.json中做一些改变: -
.......
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
....some code here//
或者你也可以在这里看到chrome的工作扩展
使用以下代码更改background.js: -
document.addEventListener('DOMContentLoaded', function () {
var link = document.getElementById('btn');
// onClick's logic below:
link.addEventListener('click', function () {
AddUrl();
});
function AddUrl() {
chrome.tabs.query({ currentWindow: true, active: true }, function (tabs) {
alert(tabs[0].url)
// document.getElementById('Current_url').value = tabs[0].url;
console.log(tabs[0].url, tabs[0].title, tabs[0].incognito, tabs, this.bookmark_title);
});
}
});
和popup.html使用此代码: -
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<script src="background.js"></script>
<body>
<h1>This is a Heading</h1>
<button id="btn"> Click Me </button>
</body>
</html>