Я пытаюсь загрузить страницу через ajax, всю страницу, и форматирую свою, как находит в загруженной. Что-то вроде практического упражнения.
Результатом вызова ajax является строка, содержащая html страницы.
Для простоты я сделал пример со строкой, содержащей что-то из самой страницы.
<html>
<head>
<title>some test</title>
<style type="text/css">
.dv810 { height:810px; }
</style>
<script src="Scripts/Ref/jquery.js"></script>
<script type="text/javascript">
var sPage =
+'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
+ '\n<html xmlns="http://www.w3.org/1999/xhtml">'
+ '\n<head>'
+ '\n <title>some test</title>'
+ '\n <style type="text/css">'
+ '\n'
+ '\n #dvMain { height:830px; }'
+ '\n'
+ '\n </style>'
+ '\n</head>'
+ '\n<body>'
+ '\n <div class="container_12 mainContainer">'
+ '\n <div id="dvMain" class="dv810"></div>'
+ '\n <br/>'
+ '\n </div>'
+ '\n</body>'
+ '\n</html>';
alert('#dvMain: ' + $('#dvMain', $(sPage)).css('height'));
</script>
</head>
<body>
</body>
</html>
Я получил это неловкое поведение, пытаясь получить свойство css, например, высоту:
- Firefox: # dvMain.height: 810px
- Chrome: # dvMain.height:
- IE8: # dvMain.height: 830px
- IE8 (с IEtester): # dvMain.height: 830px
- IE7 (с IEtester): # dvMain.height: 830px
- IE6 (с IEtester): # dvMain.height: 830px
Как кажется:
- IE понимает css в строке, черт знает как (хотя это странное поведение, мне это нравится, хотя я думаю, что я бы не стал его много использовать),
- Firefox ведет себя так, как я думаю, он будет точным, получает класс из стиля на отображаемой странице,
- Хром к моему удивлению, не понимает или не связывает это, ну, ну, просто ничего не показывай
Кто-нибудь знает почему?