首页 > 解决方案 > 使用 js 文件中的变量到另一个 js 文件中

问题描述

我正在为 chrome 做一个自动填充扩展。我在用户放置他的信息的地方制作了 html 文件,我希望这些信息将被保存,因为我需要将该信息用作 js 文件中的变量。这是 html 弹出窗口:

<html>
  <head></head>
  <body>
    <div class="simple-form">
      <form method="post">
        <input type="text" name="fname" id="full_name" placeholder="Write here your full name"><br><br>
        <input type="email" name="email" id="email" placeholder="Write here your email"><br><br>
        <input id="save" type="button" value="Salva">
      </form>
    </div>
    <script type="text/javascript" src="scriptExport.js"></script>
  </body>
</html>

这是js文件:

const button = document.getElementById('save');

button.addEventListener('click', updateButton);

function updateButton() {
  if (button.value === 'Save') {
    button.value = 'Done';
    var full_name_E = document.getElementById('full_name').value;
    var email_E = document.getElementById('email').value;
}
  else {
    button.value = 'Save';
  }
}

我需要将 full_name_E 和 email_E 加载到另一个 js 文件中,即自动填充器。我尝试了导入和导出,但它不起作用。

标签: javascripthtmlgoogle-chrome-extension

解决方案


您的问题是,full_name_E并且email_E仅在函数的本地范围内可用updateButton。要使它们在全局范围内可用,请在代码顶部初始化它们:

const button = document.getElementById('save');
var full_name_E;
var email_E;

button.addEventListener('click', updateButton);

function updateButton() {
  if (button.value === 'Save') {
    button.value = 'Done';
    full_name_E = document.getElementById('full_name').value;
    email_E = document.getElementById('email').value;
}
  else {
    button.value = 'Save';
  }
}

如果您想了解有关此主题的更多信息:


推荐阅读