postMessage два разных целых числа IE, Chrome, Safari и Firefox - Javascript - PullRequest
0 голосов
/ 16 марта 2012

Так что мне нужно разгадать тайну.Сайт A получает сообщение postMessage от сайта B. Предполагается, что сообщение postMessage должно содержать высоту сайта B.Когда сайт A получает этот номер в Firefox, он верен на 433, но когда я получаю точно такое же сообщение в IE, Chrome и Safari, я получаю экстремальные результаты.

IE, Safairi, Chrome - 1584

Firefox - 433

У кого-нибудь есть мысли, почему я получаю разные номера?Это соответствует перезагрузке, но каждый раз, когда отправляется новое сообщение, я получаю новый номер.Результаты различны в каждом браузере.

IE-Pattern

  1. 1584
  2. 158399
  3. 397
  4. 39699
  5. 1533901
  6. 397
  7. 39699
  8. 1533901

Chrome / Safari - Pattern

  1. 1584
  2. 1583
  3. 1581
  4. продолжает уменьшаться при каждом запросе

Любые мысли приветствуются.Удачного дня!

var onmessage = function(e) {
    console.log(e.data); // testing - 1584(wrong) or 433(right) on first message
    height = e.data + 15;
    // Resizes the iframe to accomodate the content
    document.getElementById('api_box').parentNode.style.height = height + 'px';

 };


// Using the postMessage method we can send data from the iframe to this frame and adjust its height
if (typeof window.addEventListener != 'undefined') {  
  window.addEventListener('message', onmessage, false);  
} else if (typeof window.attachEvent != 'undefined') {  
  window.attachEvent('onmessage', onmessage);  
}

Код на сайте B, который отправляет сообщение.

    parent.window.postMessage(document.body.offsetHeight, '*');
...