<script>
const text = document.getElementById("promocode");
const btn = document.getElementById("copy");
btn.addEventListener('click', () => {
if (navigator.clipboard) {
navigator.clipboard.writeText(text.value)
.then(() => {
btn.textContent = "Скопировано";
})
.catch(err => {
console.error('ОшибкО: ', err);
});
} else {
text.select();
document.execCommand("copy");
btn.textContent = "Скопировано";
}
});
</script>
let player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
videoId: '123',
playerVars: {
autoplay: 1,
fs: 0
},
events: {
'onReady': onPlayerReady
}
});
}
Нужно ли обычную форму обратной связи лендинга защищать от спам-ботов?
Если да, что можете посоветовать?
Есть ли какой-то media query для этого?
Или всякими browser detector-ами пользоваться надо?
function isEmbedded(userAgent) {
const userAgents = ['FBAV', 'Instagram', 'Snapchat', 'Twitter'];
return userAgents.some(id => userAgent.includes(id));
}
console.log(isEmbedded(window.navigator.userAgent)); // true
if (!('serviceWorker' in navigator)) console.log('Embedded?');
await page.evaluate(() => {window.scroll(0,0)});
await page.goto(
'https://mdn.mozillademos.org/en-US/docs/Web/API/Element/wheel_event$samples/Scaling_an_element_via_the_wheel?revision=1587366'
);
const elem = await page.$('div');
const boundingBox = await elem.boundingBox();
await page.mouse.move(
boundingBox.x + boundingBox.width / 2,
boundingBox.y + boundingBox.height / 2
);
await page.mouse.wheel({deltaY: -100});
Почему так происходит, и как такое можно решить?
function getTimeDiff(startDate, endDate) {
const diff = endDate - startDate;
const seconds = Math.floor(diff / 1000);
const minutes = Math.floor(seconds / 60);
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
const months = Math.floor(days / 30); // ~30
const years = Math.floor(days / 365); // ~365
return {
years,
months: months % 12,
days: days % 30,
hours: hours % 24,
minutes: minutes % 60,
seconds: seconds % 60
};
}
const today = new Date();
const targetDate = new Date("2023-12-29 00:00:00");
const diff = getTimeDiff(targetDate, today);
console.log(`Разница, лет: ${diff.years}, месяцев: ${diff.months}, дней: ${diff.days}, часов: ${diff.hours}, минут: ${diff.minutes}, секунд: ${diff.seconds}`);
// Разница, лет: 0, месяцев: 0, дней: 0, часов: 9, минут: 51, секунд: 22
const loadedModule = require('./modulePath/index.js');
loadedModule.counter()
console.log(loadedModule.awesomeValue);
Tue Dec 19 2023 15:15:27 GMT+0600 (Восточный Казахстан)
popup.js:22 Tue, 19 Dec 2023 09:15:27 GMT
const date = new Date();
const nowTime = () => {
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
return `${hours}:${minutes}:${seconds}`
}
console.log(`Local date: ${date}`);
console.log(`Local time: ${nowTime()}`);
console.log(`UTC date: ${date.toUTCString()}`);
console.log(`Offset hours: ${date.getTimezoneOffset() / 60}`);
// Local date: Wed Dec 20 2023 09:24:43 GMT+0300 (Москва, стандартное время)
// Local time: 09:24:43
// UTC date: Wed, 20 Dec 2023 06:24:43 GMT
// Offset hours: -3
использовать только асинхронные методы
и в итоге отправлять содержимое на клиент
И я не совсем понимаю если я так подключаюсь , я скрываю свой ip или нет?
Какой шанс, что телеграм во втором случае может узнать мой ip
document.querySelector('#id').addEventListener('mousedown', () => window.open('example.com', '_blank').focus());
function spam() {
window.open('example.com', '_blank').focus();
element.removeEventListener('mousedown', spam);
}
const element = document.querySelector('#id');
element.addEventListener('mousedown', spam);
Код работает, но после обновления страницы всё вновь пропадает.
// returns true if has contain spam
const checkForSpam = function (message) {
const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
const w = c.split(' ');
return w.includes('spam') || w.includes('sale');
}
console.log(checkForSpam('[SPAM] How to earn fast money?')); // true
// returns true if has contain spam
const checkForSpam = function (message, stops) {
const c = message.toLowerCase().replace(/[^a-z\s]/g, '');
const w = c.split(' ');
return stops.some(word => w.includes(word));
}
console.log(
checkForSpam(
'[SPAM] How to earn fast money?',
['spam', 'sale']
)
); // true