Javascript 如何让我的代码更改弹出窗口中的值?

Javascript 如何让我的代码更改弹出窗口中的值?,javascript,html,firefox,firefox-addon,Javascript,Html,Firefox,Firefox Addon,我正在构建或者更确切地说是试图构建一个Firefox扩展。当您单击工具栏上的按钮时,弹出窗口打开,用户输入一个数字,然后弹出窗口从该数字开始倒计时。但是,弹出窗口不显示任何值 Manifest.json文件: { "manifest_version": 2, "name": "Timer", "version": "1.0", "description": "", "homepage_url": "", "icons": { "48

我正在构建或者更确切地说是试图构建一个Firefox扩展。当您单击工具栏上的按钮时,弹出窗口打开,用户输入一个数字,然后弹出窗口从该数字开始倒计时。但是,弹出窗口不显示任何值

Manifest.json文件:

{

    "manifest_version": 2,
    "name": "Timer",
    "version": "1.0",

    "description": "",
    "homepage_url": "",
    "icons": {
      "48": "icons/border-48.png"
    },

    "permissions": [
      "activeTab"
    ],

    "browser_action": {
      "default_icon": "icons/border-48.png",
      "default_title": "Timer",
      "default_popup": "popup/pro.html"
    }

  }
JavaScript:

    function timeInMinutesLeft(time){
      let timeSetByUser=(time*60);//converting to seconds
      let start=Date.now();  
      let elapsed = (Date.now() - start)/1000;//time elapsed in seconds
      let timeLeft = Math.round(timeSetByUser - elapsed)
      document.getElementById("timeLeft").innerHTML = timeLeft;
      return timeLeft;
    }
    function set(tabs) {
      let timesUp=False;
      let timeInput=document.getElementById('timerValue');
      let timeInputValue=timeInput.value();
      timeLeft = setInterval(timeInMinutesLeft(timeInputValue), 1000);
    }
HTML:

<div id="popup-content">
        <h6 id=title></h6>
        <input type="number" name="quantity" min="1" max="60" id="timerValue">
        <p id="timeLeft"></p>
        <div class="set button">Timer</div>
    </div>

计时器

timeOutput.value=timeLeft;似乎没有将剩余时间输出到工具栏中的弹出窗口。

问题在于,每当更改值时重新创建elementSelector时,elementSelector就会丢失其绑定,这就是DOM的操作方式。您需要让您的作用域元素可以从您的间隔中访问,如下所示:

var myVar=setInterval(myTimer,1000);
函数myTimer(){
var d=新日期();
变量t=d.toLocaleTimeString();
document.getElementById(“timeLeft”).innerHTML=t;
}

计时器
您是否尝试过timeOutput.innerHTML=请选择主题中的问题:包括重复该问题的问题。对于Chrome扩展或Firefox WebExtensions,您几乎总是需要包含manifest.json和一些背景、内容和/或弹出脚本/HTML,通常还有网页HTML/scripts。寻求调试帮助的问题(“为什么我的代码没有按我想要的方式工作?”)必须包括:(1)所需的行为,(2)特定的问题或错误,(3)在问题本身中重现它所需的最短代码。另请参见:,和。我添加了以下内容:document.getElementById(“timeLeft”).innerHTML=timeLeft;timeInMinutesLeft函数和var myVar=setInterval(timeInMinutesLeft(),1000);但它似乎无法解决问题。