Chrome扩展程序可在Chrome浏览器弹出窗口中单击按钮时打开新的弹出网址

时间:2014-08-10 15:10:41

标签: javascript google-chrome google-chrome-extension

我想在一个按钮的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'));
});

但是当我点击任一按钮时,弹出窗口没有按设置加载新的弹出页面。请让我知道我做错了什么

1 个答案:

答案 0 :(得分:0)

我不会尝试在事件处理程序中传递字符串,而是使用单击按钮的属性

function btn_clicked() {
  var id=this.id; 
  if(id == "signup") {

同样在您的代码中,您测试signup两次,并且只在单击某些内容时添加事件处理程序。相反,你可能想要

document.addEventListener("DOMContentLoaded", function() {