IE и JavaScript: перезагрузка окна при изменении размера - PullRequest
0 голосов
/ 25 мая 2011

Причины для сценария: Перезагружает различные CSS-скрипты на основе ширины и высоты, определенных браузером. Необходимо перезагрузить окно, чтобы перезагрузить другой JavaScript при изменении размера браузера.

Возникли проблемы: IE любит зацикливаться непрерывно.

Совместимость с другими скриптами: Chrome, FireFox, Safari работают

Используемый скрипт:

<body onResize="window.location.href = window.location.href;">

Кто-нибудь, пожалуйста, придумайте лучшее решение или предложение !! Это должно работать для Safari, IE и FireFox.

Возможно, если логика основана на типе браузера?

РЕШЕНИЯ НИЖЕ (JQUERY): запуск события window.resize в Internet Explorer

$(document).ready(function(){

var winWidth = $(window).width(),
winHeight = $(window).height();

$(window).resize(function(){

onResize = function() {
//The method which sets the LEFT css property which triggers 
//window.resize again and it was a infinite loop
setWrapperPosition($mainWrapper.parent());
}

//New height and width
var winNewWidth = $(window).width(),
winNewHeight = $(window).height();

// compare the new height and width with old one
if(winWidth!=winNewWidth || winHeight!=winNewHeight)
{
window.clearTimeout(resizeTimeout);
resizeTimeout = window.setTimeout(onResize, 10);
}
//Update the width and height
winWidth = winNewWidth;
winHeight = winNewHeight;
});
});

Ответы [ 2 ]

1 голос
/ 25 мая 2011

Я бы использовал:

window.location.reload()

для перезагрузки страницы.

Кроме того, я не уверен, является ли onresize широко поддерживаемым событием.

Вместо этого я бы сделал это с таймером (источник здесь http://jsfiddle.net/ACpTm/4/)


Но я ДЕЙСТВИТЕЛЬНО не советовал бы никому перезагружать страницу из-за стиля. Это плохая практика, и пользователю это не нравится, особенно если у него ограниченная пропускная способность.

Не могли бы вы описать , почему вам нужно это сделать? Вместо этого мы могли бы предложить более универсальное решение.

0 голосов
/ 25 мая 2011

Вам было бы намного лучше, если бы вы не основывали свой CSS на размере браузера.

Вы можете использовать Javascript / jQuery для изменения размера события в окне onResize, я должен был сделать это один раз в прошлом, и все работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...