Kselax.ru

Hacker Kselax — the best hacker in the world

Menu
  • Блог
  • Контакты
  • wp plugin генератор
  • Русский
    • Русский
    • English
Menu

Как удалить изображение из google

Posted on 24 июня, 2019 by admin

Временами нужно удалить изображение из google поиска. Вначале нужно удалить изображение из сайта, затем сделать запрос в google. На странице помощи гугл не ясно написано что делать. Там говориться вы должны скопировать ссылку и поместить ее в их удаления форму но это не работает если вы копируете изображения адрес. Вы должны скопироовать ссылку и поместить…

Read more

IOS position fixed не работает

Posted on 14 июня, 2019 by admin

На IOS устройствах position fixed не работает. Я получил задание где нужно добавить кнопкувыше клавиатуры. Кнопка прикреплена внизу. И так я сделал такой код. Показать »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<script>
  console.log('1hello world');
  window.addEventListener('resize', () => {
    console.log('window')
  })
 
  let flag = null
  var userAgent = navigator.userAgent || navigator.vendor || window.opera;
 
  const f = () => {
    console.log('userAgent = ', userAgent);
    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream && window.innerWidth < 800 && !flag) {
      console.log('once');
      flag = true
      
      document.getElementById('ServiceFilter_1163_MIN').addEventListener('focus', () => {console.log('focus1')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="calc(50% + 10px)"
          document.querySelector('.bx_filter_button_box').style.display="block"
        },1000)
      })
 
      document.getElementById('ServiceFilter_1164_MIN').addEventListener('focus', () => {console.log('focus1')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="calc(50% + 10px)"
          document.querySelector('.bx_filter_button_box').style.display="block"
        },1000)
      })
 
      document.getElementById('ServiceFilter_1163_MAX').addEventListener('focus', () => {console.log('focus1')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="calc(50% + 10px)"
          document.querySelector('.bx_filter_button_box').style.display="block"
        },1000)
      })
 
      document.getElementById('ServiceFilter_1164_MAX').addEventListener('focus', () => {console.log('focus2')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="calc(50% + 10px)"
          document.querySelector('.bx_filter_button_box').style.display="block"
        },1000)
      })
 
      document.getElementById('ServiceFilter_1163_MAX').addEventListener('blur', () => {console.log('focus1')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="0px"
        },0)
      })
 
      document.getElementById('ServiceFilter_1164_MAX').addEventListener('blur', () => {console.log('focus2')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="0px"
        },0)
      })
 
      document.getElementById('ServiceFilter_1163_MIN').addEventListener('blur', () => {console.log('focus1')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="0px"
        },0)
      })
 
      document.getElementById('ServiceFilter_1164_MIN').addEventListener('blur', () => {console.log('focus2')
        setTimeout(() => {
          document.querySelector('.bx_filter_button_box').style.bottom="0px"
        },0)
      })
    }
  }
  setTimeout(() => {
    console.log('here we are');
    f()
  },0)
 
  window.addEventListener("resize", function () {
    // console.log(window.innerWidth);
    // console.log('flag = ', flag);
    console.log('userAgent = ', userAgent);
    // iOS detection from: http://stackoverflow.com/a/9039885/177"20
    
    f()
  });
</script>

И после клика на input кнопка прыгала в любое место. Она не была фиксированой. Не использую position fixed с IOS. Это не работает.   Сдесь пример того что…

Read more

express.js роутер с регулярными выражениями

Posted on 8 июня, 2019 by admin

Ты можешь создать экспресс роутер что будет обрабатывать несколько страниц portfolio, projects, reviews, используя такую структуру как показано ниже

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
const express = require('express');
const router = express.Router();
 
const DB = require('../../core/my_db/DB.js')
 
 
 
// # 1
/* /api/v1/users/:login/portfolio/?user&portfolio */
router.get(/\/(.*)\/(portfolio|projects|reviews)/, function(req, res, next) {
  let login = req.params[0]
  
  const getUser = (login) => {
    return new Promise((resolve, reject) => {
      DB.pool.query(
        `SELECT *
         FROM `users`
         WHERE login = ?`,
        [login],
        (err, r) => {
          if (err) throw err
          if (r.length === 1) {
            delete r[0].pass
            return resolve({ user: r[0] })
          }
          return reject({ error: "notFound" })
        }
      )
    })
  }
 
  const getPortfolio = (login) => {
    return new Promise((resolve, reject) => {
      DB.pool.query(
        `SELECT p.*
         FROM `users` u
         INNER JOIN `portfolios` p
         ON p.userId = u.id AND u.login = ?`,
        [login],
        (err, r) => {
          if (err) throw err
          resolve({ portfolios: r })
        }
      )
    })
  }
 
  const getProjects = (login) => {
    return new Promise((resolve, reject) => {
      DB.pool.query(
        `SELECT p.*
        FROM `users` u
        INNER JOIN `projects` p
        ON p.userId = u.id AND u.login = ?`,
        [login],
        (err, r) => {
          if (err) throw err
          resolve({ projects: r })
        }
      )
    })
  }
 
  const getReviews = (login) => {
    return new Promise((resolve, reject) => {
      DB.pool.query(
        `SELECT r.*,
            u2.id as u2_id,
            u2.login,
            u2.avatar,
            u2.firstName,
            u2.secondName
        FROM `users` u
        INNER JOIN `reviews` r
        ON r.userId = u.id AND u.login = ?
        INNER JOIN `users` u2
        ON r.authorId = u2.id`,
        [login],
        (err, r) => {
          if (err) throw err
          resolve({ reviews: r })
        }
      )
    })
  }
 
  
 
  let requests = []
  console.log('req.query = ', req.query);
 
  if (req.query.hasOwnProperty('user')) {
    requests.push(getUser(login))
  }
 
  if (req.query.hasOwnProperty('portfolio')) {
    requests.push(getPortfolio(login))
  }
 
  if (req.query.hasOwnProperty('projects')) {
    requests.push(getProjects(login))
  }
 
  if (req.query.hasOwnProperty('reviews')) {
    requests.push(getReviews(login))
  }
  
  
  
 
  
 
  Promise.all(requests)
    .then(values => {
      console.log(values); // [3, 1337, "foo"]
      res.json(values)
    })
    .catch(err => {
      res.json(err)
    })
  
  
});
 
 
 
// # 2
/* /api/v1/users/:login/projects/ */
router.get('/:login/projects/', function(req, res, next) {
  res.json({ hello:'world' })
})
 
module.exports = router;

  Это очень важно, строка что определяет регулярное выражение должно быть js регулярное выражение. Не строка!

1
router.get(/\/(.*)\/(portfolio|projects|reviews)/, function(req, res, next) {

   

Read more
jwt authentication with passport.js

Как использовать JWT с passportjs

Posted on 18 мая, 201918 мая, 2019 by admin

#Содержание: Введение Установка Создаем authentication router Реализация JWT protected router Test JWT authentication и authorization Выводы Несколько слов об https и http Все файлы /routers/auth.js, /routers/users.js, /app/passport.js and app.js Ресурсы   #Введение JWT это json web token. Он используется для authentication между сервером и клиентом. Реализовать его в node.js мы будем использовать следующие модули: passport…

Read more

Как использовать react-router для нескольких языков

Posted on 13 мая, 201913 мая, 2019 by admin

Это часто нужно создать сайт что будет поддерживать несколько языков, для примера я собираюсь создать мультиязычный сайт который будет поддерживать 3 языка пока что. Потом я добавлю еще несколько. И так, я хочуу создать с тремя ua, ru и en. И в этой статье я объясну вам как это реализовать. Как react-router работает с мультиязычными…

Read more

Socket.io и Аpache как reverse proxy на CentOS

Posted on 11 мая, 201911 мая, 2019 by admin

В этой статье мы рассмотрим socket.io + apache как реверс прокси. CentOS по умолчания поставляется со всеми нужными модулями для работы с реверс прокси. Нам ничего не нужно устанавливать, просто настроить виртуальный хост Прежде всего мы должны открыть порт 3000 Открываем файл где наш <VirtualHost …>…</VirtualHost> размещены. Это может быть разные места в папке /etc/httpd….

Read more

Как использовать ref в react

Posted on 7 мая, 20197 мая, 2019 by admin

Привет! В этой статье я собираюсь обьяснить вам как использовать react ref правильно и приведу реальный пример из жизни. И так ref это специальный атрибут в React. Мы можем добавить его к любому элементу. Он принимает callback функцию которую React будет вызывать мгновенно. Это использует в основном устанавливать фокус на некоторых элементах, но  мы можемиспользовать…

Read more

redux-thunk vs redux-saga vs redux-promise

Posted on 6 мая, 20196 мая, 2019 by admin

Рассмотрим несколько таких популярных библиотек для асинхронных запросов в redux redus-thunk redux-saga  redux-promise   Каждая из них делает одну и туже вещь, а именно отправляет асинхронные запросы, но делает их каждая по своему   #redux-thunk redux-thunk — это middleware которае позволяет диспатчить функции как экшинс. Это самое простое middleware из всех трех   Установка:

1
npm i redux-thunk

…

Read more

Перевод wordpress из LTR в RTL фиксим сьехавшие блоки

Posted on 22 июля, 201722 июля, 2017 by admin

Перевод wordpress из LTR в RTL бывает баки. у меня был баг некоторые блоки были сьехвавшими. Появляется между ними пустое пространстрво. Скрин. Такое нужно фиксить.

Read more
доступ к локальному серверу через интернет

WAMP доступ к локальному серверу через интернет

Posted on 18 июля, 201722 июля, 2017 by admin

В этой статье мы попробуем открыть доступ к локальному серверу через интернет. Думал сделать тестовый сервер на моем собственном компьютере. Для этого используем WAMP сервер и нужно дать к нему доступ. Доступ к локальному серверу через интернет Для начала нам нужно открыть доступ на нашем роутере это называется port forwarding. Для этого заходим в настройки нашего…

Read more

Навигация по записям

  • 1
  • 2
  • 3
  • 4
  • …
  • 40
  • Next

Рубрики

  • C++ (293)
  • JavaScript (1)
  • linux (1)
  • MFC (39)
  • node.js (2)
  • React (3)
  • vBulletin (5)
  • Visual Studio (9)
  • wordpress (18)
  • Разное (29)

Метки

Ajax bootstrap CentOS CLI expressjs FormData GDlib google Invisible reCAPTCHA JWT media MFC php react-router-dom redux repository wordpress RTTI STL vBulletin vector Visual Studio WINAPI wordpress wp-plugins XMLHttpRequest Двоичное дерево Задачи С++ Игры С++ Исключения С++ О-большое Операторы_С++ Перегрузка операторов С++ Поиск С++ Потоки Проектирование_С++ С++ Типы_С++ Типы С++ Шаблоны С++ библиотеки локализация макросы С++ сортировка С++

Свежие комментарии

  • RA3PKJ к записи visual C++, создание диалоговых окон.
  • admin к записи Как удалить изображение из google
  • Shakanris к записи Программка для заполнения форума на vBulletin 3.8.7
  • костя к записи visual C++, создание диалоговых окон.
  • Татьяна к записи Как удалить изображение из google
©2021 Kselax.ru Theme by ThemeGiant