Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с ajax-iframe навигацией (https://javascript.ru/forum/misc/56398-pomogite-s-ajax-iframe-navigaciejj.html)

KosBeg 14.06.2015 11:04

Помогите с ajax-iframe навигацией
 
Всем привет! :victory:
Сегодня от нефиг делать решил подебажить "ВКонтакте" :p
И что мне стало интересно, что при переходе на другую страницу(например клик по внутренней ссылке) происходит не аякс-get запрос, а просто get(это хорошо видно в firefox’е - я вчера обновил его с 31 версии до 38, а в 38 видно разницу между xhr и простым запросом, в отличии от 31 :cray:
И при этом iframe на странице я не заметил! :yes:
Я не прошу мне сразу готовый код, дайте намек хотя бы :D
Очень интересно как так сделать)))

KosBeg 14.06.2015 11:32

Оказывается там динамический iframe...
PS: Нашел в https://vk.com/js/al/common.js такой код(я его обернул в html файл, и вставил сюда минимальное количество функций с того скрипта для роботы "window.iframeTransport" без ошибок)
<!doctype html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>VK ajax-iframe transport</title>
 </head>
 <body>

<div id="utils"></div>

<script>
function ge(el) {
  return (typeof el == 'string' || typeof el == 'number') ? document.getElementById(el) : el;
}

function ce(tagName, attr, style) {
  var el = document.createElement(tagName);
  if (attr) extend(el, attr);
  if (style) setStyle(el, style);
  return el;
}

function geByTag(searchTag, node) {
  node = ge(node) || document;
  return node.getElementsByTagName(searchTag);
}

function geByTag1(searchTag, node) {
  node = ge(node) || document;
  return node.querySelector && node.querySelector(searchTag) || geByTag(searchTag, node)[0];
}

window.headNode = geByTag1('head');
extend(window, {
  icoNode:  geByTag1('link', headNode),
  bodyNode: geByTag1('body'),
  htmlNode: geByTag1('html'),
  utilsNode: ge('utils'),
  _fixedNav: false,
  _tbLink: {}
});

function extend() {
  var a = arguments, target = a[0] || {}, i = 1, l = a.length, deep = false, options;

  if (typeof target === 'boolean') {
    deep = target;
    target = a[1] || {};
    i = 2;
  }

  if (typeof target !== 'object' && !isFunction(target)) target = {};

  for (; i < l; ++i) {
    if ((options = a[i]) != null) {
      for (var name in options) {
        var src = target[name], copy = options[name];

        if (target === copy) continue;

        if (deep && copy && typeof copy === 'object' && !copy.nodeType) {
          target[name] = extend(deep, src || (copy.length != null ? [] : {}), copy);
        } else if (copy !== undefined) {
          target[name] = copy;
        }
      }
    }
  }

  return target;
}

*!*
window.iframeTransport = utilsNode.appendChild(ce('div', {innerHTML: '<iframe></iframe>'})).firstChild;
*/!*
</script>

 </body>
</html>


помощь мне всеравно нужна)
помогите)))


Часовой пояс GMT +3, время: 01:07.