似乎不应该有问题,因为我将4chan添加到清单的权限部分,但链接仍然没有打开4chan.org的新选项卡。如果有人能说出我的代码有什么问题,我真的很感激。
这是我目前的代码:
manifest.json:
{
"manifest_version": 2,
"name": "C-List",
"description": "Never Miss a New Thread Again",
"version": "3.0",
"browser_action": {
"default_icon": "icon.jpg",
"default_popup": "popup.html"
},
"permissions": [
"tabs",
"activeTab",
"https://www.4chan.org/",
"http://www.google.com/"
]
}
popup.html:
<!doctype html>
<html>
<head>
<title>C-List</title>
<script src="popup.js"></script>
</head>
<body>
<div style="background-color:rgb(0,255,80)"></div>
<h3>A New Thread Has Been Posted</h3>
<!-- <a id = "link">4Chan</a>
<a href="https://4chan.org/" class="button">Go to Google</a>
<button id="checkPage">Check it out now!</button>
-->
<button type="button"><a href="https://4chan.org/" class="button">New Thread</a></button>
</body>
</html>
popup.js:
document.addEventListener('DOMContentLoaded', function() {
var checkPageButton = document.getElementById('checkPage');
checkPageButton.addEventListener('click', function() {
chrome.tabs.getSelected(null, function(tab) {
d = document;
var f = d.createElement('form');
f.action = 'https://4chan.org/';
f.method = 'post';
var i = d.createElement('input');
i.type = 'hidden';
i.name = 'url';
i.value = tab.url;
f.appendChild(i);
d.body.appendChild(f);
//f.submit();
});
}, false);
}, false);
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.create({'url': "https://4chan.org/"});
});
/*
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('checkPage');
// onClick's logic below:
link.addEventListener('click', function() {
hellYeah('xxx');
});
});
答案 0 :(得分:0)
chrome.browserAction.onClicked
定义弹出窗口时, browser_action
个事件不会触发。你得到 弹出窗口或 chrome.browserAction.onClicked
事件,而不是两者。您获得的内容完全取决于是否指定了弹出页面(在manifest.json中或在browserAction.setPopup()
中设置)。
因此,您需要为按钮添加事件侦听器。类似的东西:
document.querySelector('button').addEventListener(function() {
chrome.tabs.create({'url': "https://4chan.org/"});
});