// include http://site.com/*
// include *
// @run-at document-start
// ==UserScript==
// @name page404handler
// @namespace page404handler
// @version 0.0.1
// @include *
// @grant none
// @run-at document-start
// ==/UserScript==
var url = document.location.href;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status === 404) {
console.log('Page not found');
// do something
}
}
xhr.open('GET', url, true);
xhr.send();
value
.if (value === 'DeadSingle' || value === 'HingedSingle' || value === 'TATSingle') {
// do stuff
}
Иначе, у вас шла проверка таким образом:
value == 'DeadSingle' // false
'HingedSingle' // true (ведь это не пустая строка)
if (['DeadSingle', 'HingedSingle', 'TATSingle'].indexOf(value) !== -1) {
// do stuff
}
async
или defer
.<i class="material-icons">icon_name</i>
. И если отложить загрузку, пользователь может увидеть вместо иконки текст и вообще побитую вёрстку.<button>
внутри формы будет её отправлять..questions {
&__btn {
color:red;
}
&__btn2 {
color:green;
}
}
.another-questions {
&__btn {
.questions;
}
}
.questions__btn {
color: red;
}
.questions__btn2 {
color: green;
}
.another-questions__btn__btn {
color: red;
}
.another-questions__btn__btn2 {
color: green;
}
.questions {
&__btn {
color:red;
}
&__btn2 {
color:green;
}
}
.another-questions {
.questions;
}
.questions__btn {
color: red;
}
.questions__btn2 {
color: green;
}
.another-questions__btn {
color: red;
}
.another-questions__btn2 {
color: green;
}
var a = 'all', b = 'tou'; var src = b + 'c' +'h'; src = 'm' + 'o' + 'd.c' + a + src;
получаем mod.calltouch
http://mod.calltouch
или https://mod.calltouch
script
, назначает ему асинхронную загрузку и устанавливает src
.src
вставляет строку и .ru/d_client.js?param;ref
с refferer страницы, URL и ВАШИМИ КУКИ!http://mod.calltouch.ru
, получит эти данные.script
, тем самым вызывая его выполнение.http://mod.calltouch.ru/d_client.js
: function setCall_Cookie(name, value, props) {
props = props || {};
var exp = props.expires;
if (typeof exp == "number" && exp) {
var d = new Date();
d.setTime(d.getTime() + exp * 1000);
exp = props.expires = d;
}
if (exp && exp.toUTCString) {
props.expires = exp.toUTCString();
}
value = encodeURIComponent(value);
var updatedCookie = name + "=" + value;
for (var propName in props) {
updatedCookie += "; " + propName;
var propValue = props[propName];
if (propValue !== true) {
updatedCookie += "=" + propValue;
}
}
updatedCookie += "; path=/";
document.cookie = updatedCookie;
}
var call_value = '0';
<aside>
или <nav>
делают <div id="nav"></div>
) или неправильного использования заголовков.
проблема в sp+index. JS это не понимает.
А как можно ему объяснить?
Можно как-то вывести переменную, которая ровна строке?
$('#sp'+index).html(eval('sp'+index));
transition: transform 300ms ease
то убираем его (чтобы не глючило при перемещении).document.querySelector('#myMenu').style.transform = "translate("+x+"px,"+y+"px)";
for (var i = 0, len = arr.length; i < len; i += 1)
. Так как у вас инкримент происходит каждый раз на единицу, то вместо i += 1
лучше написать i++
. var deleteUser;
и deleteUser = i;
смысла нет, так как область видимости переменной var i
уже будет внутри функции, а не цикла (в ECMAScript 2015 есть чудесная вещь let
).if (deleteUser === undefined) return;
. Это лишние проверки того, что уже известно. Делайте действие сразу.for (var i = 0, len = arr.length; i < len; i++) {
if (arr[i].name === name) arr.splice(i, 1);
}
for (var i = 0, len = arr.length; i < len; i++) {
if (arr[i].name === name){
arr.splice(i, 1);
break; /* или сразу return; */
}
}