添加.js文件

时间:2018-06-09 16:26:30

标签: javascript

我在添加我的load()函数时遇到了问题,当我将它添加到正文的末尾时它会起作用,但是当我尝试从.js文件加载它时它不会...

我的.js文件:

function toggleAttributes(checkbox, radios, attribute, attributeValue) {
  for (var i = 0; i < radios.length; i += 1) {
    // If checkbox is checked, set the attribute and the attribute value. If not, remove the attribute
    checkbox.checked === true ? radios[i].setAttribute(attribute, attributeValue) : radios[i].removeAttribute(attribute);
  }
}

function toggleRadios(el, id) {
  var radiosSelector = `#${id} input[type='radio']`,
    container = document.getElementById(id),
    radios = document.querySelectorAll(radiosSelector);
  container.classList.toggle("hide");
  toggleAttributes(el, radios, "required", "");
}
var i;
var checkboxes = document.querySelectorAll('input[type=checkbox]');
var radio = document.querySelectorAll('input[type=radio]');

var alertTxt = [];

function save() {
  var saved = '';
  var radios = document.querySelectorAll('input[type="radio"]');
  for (i = 0; i < checkboxes.length; i++) {
    localStorage.setItem(checkboxes[i].id, checkboxes[i].checked);
  }
  for (i = 0; i < radios.length; i++) {
    if (radios[i].checked === true) {
      saved += radios[i].id + ' (checked radiobutton)\n';
    }

    localStorage.setItem(radios[i].id, radios[i].checked);
  }
  alert(saved);
}

function load_() {
  for (i = 0; i < checkboxes.length; i++) {
    checkboxes[i].checked = localStorage.getItem(checkboxes[i].id) === 'true' ? true : false;

    if (checkboxes[i].checked) {
      var container = '#' + checkboxes[i].dataset.target;
      document.querySelector(container).classList.toggle("hide");
      var radios = document.querySelectorAll('#' + checkboxes[i].dataset.target + ' input[type="radio"]');
      for (j = 0; j < radios.length; j++) {
        radios[j].checked = localStorage.getItem(radios[j].id) === 'true' ? true : false;
      }
    }
  }
}

(function() {
  load_();

})();

我正在添加我的.js文件:

<script src = "JS/zamowienie.js"></script>

在我的身体之前

那有什么不对?当我在.html文件中添加我的脚本时为什么它可以工作,但是当我从.js文件加载它时它不起作用...

1 个答案:

答案 0 :(得分:0)

您需要在</body>标记之前添加脚本文件,如下所示,我已将您的脚本上传到文件中并通过我的域加载,由于{{stackoverflow的限制',它将无法正常运行1}}但它会显示以下异常,该异常表明它正在加载脚本文件并调用localStorage函数,并从行load_()抛出错误

  

VM236 local.js:39未捕获DOMException:无法读取   'Window'中的'localStorage'属性:文档是沙盒的   缺乏'允许同源'标志。       在load_(https://omaraslam.com/local.js:39:33)       在https://omaraslam.com/local.js:56:5       在https://omaraslam.com/local.js:58:3

checkboxes[i].checked = localStorage.getItem(checkboxes[i].id) === 'true' ? true : false;