id
пользователей – выполняется быстро.city
и can_write_private_message
, как долго думает и вылетает с ошибкой.id
, а потом запрашивать city
и can_write_private_message
только для новичков. W
, а вторая кнопка мыши - пробел
с автоповтором:const buttonChars = {
1: 'W', // левая (основная) кнопка мыши
2: ' ', // правая (второстепенная) кнопка
};
/* коды кнопок см. в https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons
0 : No button or un-initialized
1 : Primary button (usually the left button)
2 : Secondary button (usually the right button)
4 : Auxilary button (usually the mouse wheel button or middle button)
8 : 4th button (typically the "Browser Back" button)
16 : 5th button (typically the "Browser Forward" button)
Могут быть нажаты одновременно несколько кнопок мыши - их коды суммируются.
*/
let timer;
const clearTimer = () => {if (timer) clearInterval(timer);}
const root = window;
root.addEventListener("mousedown", e => {
if (buttonChars.hasOwnProperty(e.buttons)) {
const func = () => e.target.dispatchEvent(
new KeyboardEvent('keydown',{
'key': buttonChars[e.buttons],
'bubbles': true,
'cancellable': true,
})
);
func();
clearTimer();
timer = setInterval(func, 80);
};
});
root.addEventListener("mouseup", clearTimer);
screen_name
и возвращает два поля:type
тип объекта:object_id
(integer)— идентификатор объекта. message
имеет тот же формат, что и в документации ВК.message.from_id
будет содержать идентификатор отправителя.fwd_messages
var a = 9007199254740991 + 1;
var b = 9007199254740991 + 2;
a === b; // true
- Не понимаю, как оставить класс first у первого item?
.attr('id',new_id)
Вообще достаточно один раз при запуске приложения сохранить где-то узел образца, убрав его из DOM. И дальше работать с той константой.- Почему массив item: undefined?
querySelector()
возвращает первый найденный DOM-узел.- Почему в массиве first 1 элемент (так-то оно и должно быть по идее, но он же удаляется у первого item)
first
определяется только один раз в начале скрипта, когда такой только один. И более не переопределяется.- Почему кнопка "удалить" которая должна окрасить в желтый цвет item в котором она находится, не окрашивает его
deleteThis
у вас это коллекция узлов. У неё нет метода addEventListener()
. Он есть у каждого её элемента. Надо пройтись циклом и навесить слушателя на каждого.console.log()
, чтобы посмотреть, когда что срабатывает и какие там значения у переменных. ((w) => {
function superpooper(secret) {
const pass = encodeURIComponent(secret);
return function onHashChange(){
var hash = w.location.hash.replace(/^#/,"");
if (!hash.length) return;
const xor = s => s.split('').map((c,i)=>String.fromCharCode(c.charCodeAt(0)^pass.charCodeAt(i%pass.length))).join('');
if (hash[0]==='!') {
hash = hash.substring(1);
const decoded = decodeURIComponent(xor(atob(hash)));
history.replaceState(null, null, document.location.pathname + '#' + decoded);
} else {
const encoded = btoa(xor(encodeURIComponent(hash)));
history.replaceState(null, null, document.location.pathname + '#!' + encoded);
}
}
}
w.addEventListener("hashchange", superpooper("abrakadabra"), false);
})(window)
#Моё секретное сообщение
оно тут же заменяется на!RFBHJVtEVlRbMURTVzZRTlNRIydXU1QmQ0RZVF1QR0BUU1JXU14lVURQR1lQR0BUL1FBU1cwVERQRyVbRFZUIDNEU1c2UE5TUVlSV1NUJkJEWVQmVEdAVCVTV1NeWVZEUEclUUdAVCklQVNXNlFEUEcjLkRWVCZCRFNXMFROU1FTUldTVCZDRFlUXFBHQFQlUldTXiMhRFBHJVFHQFQpJEFTVzZRRFBHI1pEVlQmQ0RTV0pYTlNRJVJXU1QgR0RZVCBRR0BUIyZXU14lVERQRyNZR0BUL1FBU1cwVA==
abrakadabra
encodeURIComponent()
, чтобы нормально работало с кириллицей, смайликами и emoji. btoa('youtext') // "eW91dGV4dA=="
– тут никаких ключей не требуется.atob("eW91dGV4dA==") // "youtext"
15 — Доступ запрещён.
Убедитесь, что Вы используете верные идентификаторы, и доступ к контенту для текущего пользователя есть в полной версии сайта.
http://www.cbr.ru/scripts/XML_daily.asp?date_req=27/06/2019
$('#two_categor_mess').click( function() {
var feedback = 'hello';
addMessage(userTwoMsg('<div class="sender-text"><p>Please tell us about PatShop and PatStudio</p></div>'));
$('.delivered').addClass('old');
$('.patshop_bot').addClass('old');
addDelivered('Delivered');
setTimeout(function() {
setTimeout(function() {
addReceived(feedback);
$('.typing_block').hide();
}, 1000);
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
}, 500);
});
// Helper functions
const addMessage = content => $('.message-screen').append(content);
const userTwoMsg = content => '<div class="user_two_message col-xs-12 col-sm-12">' + content + '</div>';
const addTypingBlock = () => addMessage(userTwoMsg('<div class="typing_block"></div>'));
const addDelivered = status => addMessage('<div class="delivered"><span>' + status + '</span></div>');
const addReceived = text => addMessage(userTwoMsg('<div class="received-text"><p>'+text+'</p></div>'));
function onSendClickDelayed() {
var divValue = $('.sender-text').last().text();
var test = 'hello';
var feedback = 'hello ';
var feedbackhowareyou = 'good ';
var feedbackalret = ' Im sorry Im in development and dont understand some of the messages. Here are the questions I can help you with: ';
var selectcategories = '<div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide" id="first_categor_mess"><p>What is PatShop and PatStudio?</p></div><div class="swiper-slide" id="two_categor_mess"><p>How to add your project</p></div><div class="swiper-slide" id="last_categor_mess"><p>How to buy the project</p></div></div></div>';
var selectcategoriestext = 'Choose one of the categories';
if (divValue.indexOf(test) >= 0) {
setTimeout(function() {
addReceived(feedback);
$('.typing_block').hide();
}, 1000);
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
} else {
setTimeout(function() {
addReceived(feedbackalret);
// addReceived(feedbackalrettwo);
addMessage(userTwoMsg(selectcategories));
addReceived(selectcategoriestext);
$('.typing_block').hide();
}, 1200)
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
}
}
$('#send').on('click', () => setTimeout(onSendClickDelayed, 500));
const onClickTwo = () => {
var feedback = 'hello';
addMessage(userTwoMsg('<div class="sender-text"><p>Please tell us about PatShop and PatStudio</p></div>'));
$('.delivered').addClass('old');
$('.patshop_bot').addClass('old');
addDelivered('Delivered');
setTimeout(function() {
setTimeout(function() {
addReceived(feedback);
$('.typing_block').hide();
}, 1000);
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
}, 500);
}
$('#two_categor_mess').click(onClickTwo);
// Helper functions
const addMessage = content => $('.message-screen').append(content);
const userTwoMsg = content => '<div class="user_two_message col-xs-12 col-sm-12">' + content + '</div>';
const addTypingBlock = () => addMessage(userTwoMsg('<div class="typing_block"></div>'));
const addDelivered = status => addMessage('<div class="delivered"><span>' + status + '</span></div>');
const addReceived = text => addMessage(userTwoMsg('<div class="received-text"><p>'+text+'</p></div>'));
function onSendClickDelayed() {
var divValue = $('.sender-text').last().text();
var test = 'hello';
var feedback = 'hello ';
var feedbackhowareyou = 'good ';
var feedbackalret = ' Im sorry Im in development and dont understand some of the messages. Here are the questions I can help you with: ';
var selectcategories = '<div class="swiper-container"><div class="swiper-wrapper"><div class="swiper-slide" id="first_categor_mess"><p>What is PatShop and PatStudio?</p></div><div class="swiper-slide" id="two_categor_mess"><p>How to add your project</p></div><div class="swiper-slide" id="last_categor_mess"><p>How to buy the project</p></div></div></div>';
var selectcategoriestext = 'Choose one of the categories';
if (divValue.indexOf(test) >= 0) {
setTimeout(function() {
addReceived(feedback);
$('.typing_block').hide();
}, 1000);
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
} else {
setTimeout(function() {
addReceived(feedbackalret);
// addReceived(feedbackalrettwo);
addMessage(userTwoMsg(selectcategories));
addReceived(selectcategoriestext);
$('.typing_block').hide();
}, 1200)
$('.delivered').addClass('old');
addDelivered('Read');
addTypingBlock();
onClickTwo(); // добавили вызов ТОЙ функции
}
}
$('#send').on('click', () => setTimeout(onSendClickDelayed, 500));