Задать вопрос
@Ffinnis

Как вставить div из одного html в другой, при этом чтобы редактировались элементы в нём?

У меня есть два html файла, в одном основной код в другом находятся svg блоки, которые должны изменятся с помощью js.
Почему просто не сделать в одном html?
svg кода на 14 тысяч строк и если хранить это в одном файле, то скорость загрузки страницы будет очень медленной.

Я попытался вставить этот div через обычный XMLHttpRequest
var xhr= new XMLHttpRequest();
           xhr.open('GET', 'kakoyito-html.html', true);
     xhr.onreadystatechange= function() {
         if (this.readyState!==4) return;
         if (this.status!==200) return; // or whatever error handling you want
         document.getElementById('config_block').innerHTML= this.responseText;
     };
     xhr.send();

Но при нажатии на кнопки, которые должны менять svg, мне выдавало ошибку:
60459ff1f1376124327041.png
Один из блоков, который выдаёт ошибку
const option_price = document.querySelector('.option_price');
const priceArg = document.querySelectorAll('[price]');
const optionSum = () => {
  oprion_sum = 0;
  for (let i = 0; i < priceArg.length; i++) {
    if (priceArg[i].checked) {
      oprion_sum += +priceArg[i].getAttribute('price');
    }
  }
  if (oprion_sum > 0) {
    let arr = [];
    let srt = oprion_sum.toString().split('');
    for (let [i, count] = [srt.length - 1, 1]; i >= 0; i--) {
      count++;
      if (count === 5) {
        arr.unshift(' ');
      }
      arr.unshift(srt[i]);
    }
    option_price.childNodes[0].data = arr.join('');
  } else {
    option_price.childNodes[0].data = oprion_sum;
  }
  return oprion_sum;
};

Помогите, пожалуйста, с этим, уже второй день мучаюсь!
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
LenovoId
@LenovoId
svg, css,js
Используйте fetch он прост в применении и если html находится на одном домене то CORS беспокоить не будет

После получения response выведите его куда угодно и за пределами fetch уже измените его
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы