我想在一个按钮的onclick事件中弹出一个新的弹出式URL,在chrome扩展中弹出。在我的情况下,我有一个页面,将在启动时显示两个按钮。这已在useropt.html页面
中设置useropt.html
<script src="scripts/usmanager.js"></script>
<body>
<div id="btn_wrap_inner">
<button class="btn" id="signin">Sign In</button><br /><br />
<button class="btn" id="signup">Sign Up</button>
</div>
</body>
JS文件usnmanager.js有js代码,代码可以在上面按钮的onlick事件的弹出窗口中打开一个新的popurl url。
usnmanager.js
function btn_clicked(tgtUrl) {
if(tgtUrl == "signin") {
var manager_url = "signin.html";
chrome.tabs.query(
{
currentWindow: true,
active : true
}, function(openselection) {
chrome.browserAction.setPopup({
popup: manager_url
});
});
} else if(tgtUrl = "signup") {
var manager_url = "signup.html";
chrome.tabs.query(
{
currentWindow: true,
active : true
}, function(openselection) {
chrome.browserAction.setPopup({
popup: manager_url
});
});
}
}
document.addEventListener("click", function() {
document.querySelector('#signin').addEventListener('click', btn_clicked('signin'));
document.querySelector('#signup').addEventListener('click', btn_clicked('signup'));
});
但是当我点击任一按钮时,弹出窗口没有按设置加载新的弹出页面。请让我知道我做错了什么
答案 0 :(得分:0)
我不会尝试在事件处理程序中传递字符串,而是使用单击按钮的属性
function btn_clicked() {
var id=this.id;
if(id == "signup") {
同样在您的代码中,您测试signup
两次,并且只在单击某些内容时添加事件处理程序。相反,你可能想要
document.addEventListener("DOMContentLoaded", function() {