Сегодня задал этот вопрос, но я думаю, что получил правильный ответ слишком рано. Я пытаюсь понять, как получить длину и ширину css элемента привязки с помощью jquery в Safari. Но я продолжаю возвращать «0», и мне сказали, что это произошло потому, что javascript срабатывает до того, как отрисовывается css - причуда браузеров Webkit.
Вот исходная страница: http://f1shw1ck.com/jquery_sandbox/csspops-orig.html< /а>
Тем не менее, я написал небольшой тест, сказав jquery подождать, пока все не будет полностью отрисовано, прежде чем захватить css. http://f1shw1ck.com/jquery_sandbox/csspops.html
Для селектора
a.popup {
width: 800px;
height: 560px;
}
и HTML
<a href="http://www.metmuseum.org/toah/hd/apol/hd_apol.htm" class="popup">African Rock Art: Apollo 11 Cave Stone (c. 25,500 - 23,500 BCE); Wonderwerk Cave Stones (c. 8000 BCE)</a>
подождите, пока страница не будет полностью, затем получите эти размеры:
$(document).ready(function () {
if (jQuery.browser.safari && document.readyState != "complete"){
//console.info('ready...');
setTimeout( arguments.callee, 5000 );
return;
}
alert($("a.popup").css("width"));
});
За исключением того, что «0» все еще возвращается в Safari. Я делаю это неправильно, или есть какая-то другая причина в игре?
Спасибо!
('selector').css('width', 800)
или что-то еще, чтобы вручную установить атрибуты... но это был бы ужасный, ужасный, бесполезный хак. - person Andy Mikula   schedule 04.09.2009