{"id":12539,"date":"2021-01-24T17:55:05","date_gmt":"2021-01-24T11:55:05","guid":{"rendered":"https:\/\/shra.ru\/?p=12539"},"modified":"2021-01-24T17:55:07","modified_gmt":"2021-01-24T11:55:07","slug":"perekhvat-oshibok-na-front-end-s-pomoshhyu-js","status":"publish","type":"post","link":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/","title":{"rendered":"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js"},"content":{"rendered":"\n

\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. <\/p>\n\n\n\n\n\n\n\n

\u041e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441\u043b\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0442.\u043a. \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0435\u0434\u0432\u0430 \u043b\u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0451 \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u043d\u0435\u0439, \u0430 \u0432 \u043b\u043e\u0433\u0430\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432\u044b \u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u0442\u0435. <\/p>\n\n\n\n

\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432 js \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 window <\/em>\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n\n\n\n

\u041f\u0443\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: \/front-end\/logger. \u041e\u043d \u0447\u0438\u0442\u0430\u0435\u0442 GET \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0433\u0434\u0435 \u0442\u043e \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442. \u0410 \u043f\u043e\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0430 front-end:<\/p>\n\n\n\n

try {\r\n  \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\n  function pinger(data) {\r\n    let img = new Image();\r\n    img.src = \"\/front-end\/logger\" + encodeQueryData(data);\r\n  }\r\n  \/\/ \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\n  function encodeQueryData(data) {\r\n    const ret = [];\r\n    for (let d in data)\r\n      ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));\r\n    return ret.length ? '?' + ret.join('&') : '';\r\n  }\r\n\n  \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u044f ERROR\r\n  window.addEventListener('error', (e) => {\r\n\r\n    let tagName = e.srcElement.tagName;\r\n\r\n    let data = { \r\n      type: tagName,\r\n      page: window.location.href,\r\n      userAgent: navigator.userAgent,\r\n      platform: navigator.platform,\r\n    };\r\n\r\n    \/\/ \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0439 URL\n    if (tagName == 'LINK') {\r\n      data.url = e.srcElement.href;  \r\n    }\r\n    if (tagName == 'IMG') {\r\n      data.url = e.srcElement.src;\r\n    }\n\n    if (data.url !== undefined) {\r\n      \/\/ \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u044f\u0432\u0438\u0442\u044c http \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\n\r      fetch(data.url).then(function(response) {\r\n        data.status = response.status;\r\n        data.statusText = response.statusText;\r\n        pinger(data);\r\n      }).catch((error) => {\r\n        data.status = 'FETCH ERROR';\r\n        data.statusText = error;\r\n        pinger(data);\r\n      });\r\n\r\n    }\r\n  }, true);\r\n\r\n} catch (e) {\r\n  ;\r\n}\r\n<\/code><\/pre>\n\n\n\n

\u0421\u043a\u0440\u0438\u043f\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n\n\n\n

[\n  \/\/ \u0442\u0438\u043f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438\u043b\u0438 \u0442\u0435\u0433 (LINK \/ IMG)\n  type,\n  \/\/ url, \u0433\u0434\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430\n  page: \n  \/\/ \u0438\u043c\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 (\u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 navigator)\n  userAgent,\n  \/\/ \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, win32)\n  platform,\r\n  \/\/ url \u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0431\u044b\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\n  url,\n  \/\/ http \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 'FETCH ERROR'\n  status,\n  \/\/ \u0442\u0435\u043a\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \n  statusText\n]<\/code><\/pre>\n\n\n\n

\u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c http \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438, \u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0435\u0451 \u0438 \u0432 \u043b\u043e\u0433\u0430\u0445 \u043d\u0430 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 (\u043b\u0438\u0431\u043e \u0432 \u043b\u043e\u0433\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u043a\u0441\u0438 \u0438\u043b\u0438 \u043a\u0435\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432). \u0415\u0441\u043b\u0438 \u0436\u0435 \u0432\u043c\u0435\u0441\u0442\u043e http \u043a\u043e\u0434\u0430 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 ‘FETCH ERROR’, \u0442\u043e \u0444\u0430\u0439\u043b \u0431\u044b\u043b \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043d\u0430\u0434\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n\n\n\n

\u041e\u0448\u0438\u0431\u043a\u0438 \u0442\u0438\u043f\u0430 LINK — \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 CSS\/JS \u0444\u0430\u0439\u043b\u043e\u0432. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441\u0430\u0439\u0442\u0430, \u0438\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u0438\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.<\/p>\n\n\n\n

Back-end \u0447\u0430\u0441\u0442\u044c logger-\u0430 \u0434\u043b\u044f Drupal<\/h2>\n\n\n\n

\u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0443\u0434\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u043d\u0430 back-end, \u0432\u0430\u043c \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0442\u0440\u0443\u0434\u0430 \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f. \u041d\u043e \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0434\u043b\u044f cms drupal 7, \u0438 \u044f \u0438\u043c \u0437\u0434\u0435\u0441\u044c \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c.<\/p>\n\n\n\n

\u041e\u0434\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u0442 end-point \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430 \u0432\u0442\u043e\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f — \u0437\u0430\u043f\u0438\u0441\u044c \u043b\u043e\u0433\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043b\u043e\u0433 cms.<\/p>\n\n\n\n

\/**\r\n * Implementation hook user login.\r\n *\/\r\nfunction MYMODULE_menu() {\r\n  $items = array();\r\n\r\n  $items['front-end\/logger'] = array(\r\n    'page callback' => '_mymodule_log_error',\r\n    'access arguments' => array('access content'),\r\n    'type' => MENU_CALLBACK,\r\n  );  \r\n\r\n  return $items;\r\n}\n\n\/**\r\n * Callback endpoint front-end\/logger\n *\/\r\nfunction _mymodule_log_error() {\r\n\r\n  $inputVars = ['type', 'page', 'url', 'userAgent', 'platform', 'status', 'statusText'];\r\n  $data = [];\r\n  foreach ($inputVars as $varName) {\r\n    $data[$varName] = empty($_GET[$varName]) ? '' : $_GET[$varName];\r\n  }\r\n\r\n  if (in_array($data['type'], ['IMG', 'LINK'])) {\r\n    $message = \"Error on {$data['page']}, {$data['status']}: {$data['statusText']}, file: {$data['url']}. {$data['platform']}. {$data['userAgent']}. \";\r\n    watchdog('FRONTEND', $message, NULL, WATCHDOG_ALERT, $data['page']);\r\n  }\r\n  exit;\r\n}<\/code><\/pre>\n\n\n","protected":false},"excerpt":{"rendered":"

\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u043b\u0438 \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[],"class_list":["post-12539","post","type-post","status-publish","format-standard","hentry","category-javascript"],"acf":[],"yoast_head":"\n\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js<\/title>\n<meta name=\"description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/\" \/>\n<meta property=\"og:locale\" content=\"ru_RU\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js\" \/>\n<meta property=\"og:description\" content=\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435\" \/>\n<meta property=\"og:url\" content=\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Shra's homepage\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-24T11:55:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-01-24T11:55:07+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u043c\u0438\u043d\u0443\u0442\u0430\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/\",\"url\":\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/\",\"name\":\"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js\",\"isPartOf\":{\"@id\":\"https:\/\/shra.ru\/#website\"},\"datePublished\":\"2021-01-24T11:55:05+00:00\",\"dateModified\":\"2021-01-24T11:55:07+00:00\",\"author\":{\"@id\":\"https:\/\/shra.ru\/#\/schema\/person\/55c78fbfda205fbab95564dcccc144e8\"},\"description\":\"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435\",\"breadcrumb\":{\"@id\":\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/#breadcrumb\"},\"inLanguage\":\"ru-RU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\/\/shra.ru\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/shra.ru\/#website\",\"url\":\"https:\/\/shra.ru\/\",\"name\":\"Shra's homepage\",\"description\":\"\u041f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 shra, \u0431\u043b\u043e\u0433 \u0444\u0440\u0438\u043b\u0435\u043d\u0441\u0435\u0440\u0430, \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043d\u0430 PHP. \u0417\u0434\u0435\u0441\u044c \u044f \u0434\u0435\u043b\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043c\u044b\u0441\u043b\u044f\u043c\u0438, \u043f\u0440\u043e\u0432\u043e\u0436\u0443 \u043e\u043f\u044b\u0442\u044b \u043d\u0430\u0434 \u043b\u044e\u0434\u044c\u043c\u0438, \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043d\u0435\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0432\u0441\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0430\u0448\u0435 \u043f\u0441\u0438\u0445\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u044b \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u043b\u0438\u0446.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/shra.ru\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"ru-RU\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/shra.ru\/#\/schema\/person\/55c78fbfda205fbab95564dcccc144e8\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ru-RU\",\"@id\":\"https:\/\/shra.ru\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/shra.ru\/wp-content\/uploads\/2021\/08\/shra_ava_margo_512-96x96.png\",\"contentUrl\":\"https:\/\/shra.ru\/wp-content\/uploads\/2021\/08\/shra_ava_margo_512-96x96.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/shra.ru\"],\"url\":\"https:\/\/shra.ru\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js","description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/","og_locale":"ru_RU","og_type":"article","og_title":"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js","og_description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435","og_url":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/","og_site_name":"Shra's homepage","article_published_time":"2021-01-24T11:55:05+00:00","article_modified_time":"2021-01-24T11:55:07+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u043e\u043c":"admin","\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f":"1 \u043c\u0438\u043d\u0443\u0442\u0430"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/","url":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/","name":"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js","isPartOf":{"@id":"https:\/\/shra.ru\/#website"},"datePublished":"2021-01-24T11:55:05+00:00","dateModified":"2021-01-24T11:55:07+00:00","author":{"@id":"https:\/\/shra.ru\/#\/schema\/person\/55c78fbfda205fbab95564dcccc144e8"},"description":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043b\u043e\u0433\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435","breadcrumb":{"@id":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/#breadcrumb"},"inLanguage":"ru-RU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/shra.ru\/2021\/01\/perekhvat-oshibok-na-front-end-s-pomoshhyu-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/shra.ru\/"},{"@type":"ListItem","position":2,"name":"\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043e\u043a \u043d\u0430 front-end \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e js"}]},{"@type":"WebSite","@id":"https:\/\/shra.ru\/#website","url":"https:\/\/shra.ru\/","name":"Shra's homepage","description":"\u041f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 shra, \u0431\u043b\u043e\u0433 \u0444\u0440\u0438\u043b\u0435\u043d\u0441\u0435\u0440\u0430, \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043d\u0430 PHP. \u0417\u0434\u0435\u0441\u044c \u044f \u0434\u0435\u043b\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043c\u044b\u0441\u043b\u044f\u043c\u0438, \u043f\u0440\u043e\u0432\u043e\u0436\u0443 \u043e\u043f\u044b\u0442\u044b \u043d\u0430\u0434 \u043b\u044e\u0434\u044c\u043c\u0438, \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043d\u0435\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0433\u043b\u0443\u043f\u043e\u0441\u0442\u0438. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0441 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430, \u0432\u044b \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0435 \u0432\u0441\u044e \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0430\u0448\u0435 \u043f\u0441\u0438\u0445\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u0434\u043e\u0440\u043e\u0432\u044c\u0435 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u044b \u0442\u0440\u0435\u0442\u044c\u0438\u0445 \u043b\u0438\u0446.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/shra.ru\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ru-RU"},{"@type":"Person","@id":"https:\/\/shra.ru\/#\/schema\/person\/55c78fbfda205fbab95564dcccc144e8","name":"admin","image":{"@type":"ImageObject","inLanguage":"ru-RU","@id":"https:\/\/shra.ru\/#\/schema\/person\/image\/","url":"https:\/\/shra.ru\/wp-content\/uploads\/2021\/08\/shra_ava_margo_512-96x96.png","contentUrl":"https:\/\/shra.ru\/wp-content\/uploads\/2021\/08\/shra_ava_margo_512-96x96.png","caption":"admin"},"sameAs":["https:\/\/shra.ru"],"url":"https:\/\/shra.ru\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/posts\/12539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/comments?post=12539"}],"version-history":[{"count":1,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/posts\/12539\/revisions"}],"predecessor-version":[{"id":12540,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/posts\/12539\/revisions\/12540"}],"wp:attachment":[{"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/media?parent=12539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/categories?post=12539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shra.ru\/wp-json\/wp\/v2\/tags?post=12539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}} <!-- Alpha cache content. Generated from cache in 0.013570070266724 s. DB queries count : 2 -->