const transformProductStatusInfo = (items) => items.map(({properties, title, value}) => ({
title,
value,
properties: Object.keys(properties).map(key => ({
key,
fieldName: properties[key][0],
fieldValue: properties[key][1]
}))
})); const checkbox2tabMap = {
link5: 'tab1',
link6: 'tab2'
// ... продолжите сами
};
function onCheckboxChange(event) {
const tab = document.getElementById(checkbox2tabMap[event.target.id]);
if(!tab) { return; }
tab.style.display = event.target.checked ? 'block' : 'none';
}
Object.keys(checkbox2tabMap).forEach(
id => document.getElementById(id).addEventListener('change', onCheckboxChange)
); function onLinkClick(event) {
event.preventDefault(); // выключаем стандартный функционал браузера (переход)
const {href} = event.target; // извлекли полный адрес из ссылки (даже для относительных ссылок вернет абсолютный адрес)
const hrefAsInHTML = event.target.getAttribute('href'); // извлекли href таким какой он есть в html
// любая Ваша логика
}
for(const link of document.getElementsByTagName('a')) {
link.addEventListener('click', onLinkClick);
} file_load.onsubmit = function(){ var file = this.elements.myfile.files[0]; var xhr = new XMLHttpRequest(); xhr.open("POST", "upload", true); xhr.send(file); return false; }
const server = require('http').createServer();
const fs = require('fs');
const nodeStatic = require('node-static');
const file = new nodeStatic.Server('.', {
cache: 0
});
server.listen(3000, () => console.log("сервер запущен"));
server.on('request', (req, res) => {
if (req.url == '/upload') {
req.pipe(
fs.createWriteStream('file2.jpg')
).on('finish', () => res.end('ok'));
return;
}
file.serve(req, res);
}); function setRandomInterval(cb, minDelay, maxDelay, ...args) {
let timeoutID;
(function next() {
const delay = Math.floor(Math.random() * (maxDelay - minDelay) + minDelay);
timeoutID = setTimeout(() => {
cb(...args);
next();
}, delay);
})();
return function cancel() {
clearTimeout(timeoutID);
};
}
// использование:
setRandomInterval(func, 500, 2500); // просто запускаем с интервалом от 0.5с до 2.5с
const cancelInteraval = setRandomInterval(() => {
console.log('it work');
if(Math.random() > 0.7) {
cancelInteraval(); // таймаут можно отменить если вызвать возвращенную функцию
}
}, 200, 500);
setRandomInterval((arg1, arg2, arg3) => {
console.log(arg1, arg2, arg3);
}, 1000, 3000, 'arg1', 'arg2', 'arg3'); // подобно setTimeout и setInterval можно передать аргументы в колбэк parent.querySelectorAll('.gallery-uploads-imgs__item').forEach(element => {
var img = new Image;
img.src = element.dataset.src
document.body.append(img)
let canvas = document.createElement('canvas')
let context = canvas.getContext('2d');
canvas.width = img.clientWidth
canvas.height = img.clientHeight
img.onload = function() {
context.drawImage(img, 0,0);
img.remove();
canvas.toBlob(function(blob) {
let uploadImageUrl = URL.createObjectURL(blob);
data.blobs.push( uploadImageUrl )
}, 'image/png');
}
})И вообще какие еще варианты могут быть решения этой задачи? Кроме цикла for? Несмотря на то что в задании пишет именно с помощью него решить задачу. Просто для себя чтобы знать другие варианты.
document.getElementById('root').appendChild(
document.createTextNode(
Array.from(new Array(401), (_, i) => i).slice(4).join(' ')
)
); import logBuilder from "./logs/logger";
const log = logBuilder(import.meta);