const $textarea = document.querySelector('textarea')
const $button = document.querySelector('button')
$button.addEventListener('click', event => {
const $html = parseHTML($textarea.value)
const img = $html.querySelector('img.header_subj_logo').outerHTML
const div = $html.querySelector('div.prob_list').outerHTML
$textarea.value = img + div
})
function parseHTML(html) {
const root = document.implementation.createHTMLDocument()
root.documentElement.innerHTML = html
return root.documentElement
}
function myPlugin(param) {
var id = param.id;
return {
param1: 100,
param2: 200,
method1: function () {
return id;
},
method2: function () {}
}
}
var plg = myPlugin({
id: "#block1"
})
console.log(plg.method1()); //> "#block1"
bus.$on('searchсlose', function() {
console.log('Поймал!'); // не срабатывает
this.searchList = false; // не срабатывает
})
function()
пишите () =>
$('input[type="submit"]').on('submit', function (event) {
event.preventDefault();
//> Обработчик submit формы
});
/**
* Обработчик клика баннера
* @description
* При клике по баннеру сохраняем клик в LocalStorage
* Если к-во кликов равно 10, то очищаем клики и делаем что-то
*/
$('.banner').on('click', function () {
var count = saveBannerClick();
if (count === 10) {
clearBannerClick();
//> Делаем что-то! Показываем submit / форму
}
});
/**
* Получить количество кликов по баннеру
* @returns {?Number}
*/
function getBannerClick() {
var count = window.localStorage.getItem('bannerClick');
return count ? Number(count) : null;
}
/**
* Сохранить клик по баннеру
* @returns {Number} Актуальное количество кликов
*/
function saveBannerClick() {
var count = getBannerClick();
if (count === null) {
window.localStorage.setItem('bannerClick', 1);
return 1;
} else {
window.localStorage.setItem('bannerClick', ++count);
return count;
}
}
/**
* Очистить клили по баннеру
* @returns {void}
*/
function clearBannerClick() {
window.localStorage.removeItem('bannerClick');
}
import TestComponent from './templates/VueTestForm/TestComponent.vue'
Vue.component('test-component', TestComponent)
const file = `
<template>
<div>
#{hello}
Component #{component.name} working!
</div>
</template>
<script>
export default {
name: '#{component.name}'
}
</script>
`;
const output = templater(file, {
hello: 'Hello from templater function',
component: {
name: "My Default Component Name"
}
});
console.log(output);
function templater(input, data, config) {
const setup = Object.assign({}, {
flag: 'g',
start: '\#\{',
end: '\}',
deep: true
}, config);
for (const key in data) {
if (Object.prototype.hasOwnProperty.call(data, key)) {
if (setup.deep && (typeof data[key] === "object" && data[key] !== null && !Array.isArray(data[key]))) {
const deep = {};
for (const name in data[key]) {
if (Object.prototype.hasOwnProperty.call(data[key], name)) {
deep[`${key}.${name}`] = data[key][name];
}
}
input = templater(input, deep, setup);
} else {
input = input.replace(new RegExp(setup.start + key + setup.end, setup.flag), data[key]);
}
}
}
return input;
}
return $.ajax(...)
function request(url, param) {
// ...
return $.ajax({
// ...
});
}
request("/url", param).done(function (data) {
console.log(data.answer);
});
(async () => {
const answer = await request("/url", param);
console.log(answer);
})();
<div>
<img data-loop-src='[
"https://picsum.photos/150/150/?image=10",
"https://picsum.photos/150/150/?image=25",
"https://picsum.photos/150/150/?image=30"
]'>
<img data-loop-src='[
"https://picsum.photos/150/150/?image=5",
"https://picsum.photos/150/150/?image=8",
"https://picsum.photos/150/150/?image=4"
]'>
<img data-loop-src='[
"https://picsum.photos/150/150/?image=2",
"https://picsum.photos/150/150/?image=99",
"https://picsum.photos/150/150/?image=84"
]'>
</div>
<script>
document.querySelectorAll('[data-loop-src]').forEach(image => {
const list = JSON.parse(image.dataset.loopSrc);
(function timer(index = 0) {
setTimeout(() => {
if (list[index]) {
image.src = list[index];
timer(++index);
} else {
setTimeout(timer, 4000);
}
}, 200);
})();
});
</script>
function parseHTML(html) {
const root = document.implementation.createHTMLDocument();
root.body.innerHTML = html
return root.body.children[0];
}
const inputName = parseHTML('<input type="text" name="b_ef1fb2fb5c60353bfdffd48db_71b534c03f" tabindex="-1" value="">').getAttribute('name');
console.log(inputName); //> "b_ef1fb2fb5c60353bfdffd48db_71b534c03f"
const parseHTML = html => {
const root = document.implementation.createHTMLDocument();
root.body.innerHTML = html;
return root.body.children[0];
}
const text = `
<div>
<h1>Text</h1>
<script>
console.log("!");
</script>
</div>
`;
if (parseHTML(text).querySelector('script')) {
alert('isset script')
}