jQuery.html () удаляет скрипты и стили
Это не мой опыт (см. Ниже). На практике вы должны знать, что при запросе DOM для HTML-строк вы всегда будете получать интерпретируемый HTML, а не оригинал, и будут причуды (например, в IE все имена тегов HTML находятся в верхнем регистре). Это связано с тем, что функция jQuery html
основана на свойстве браузера innerHTML
, которое немного отличается от браузера к браузеру. Но приведенная ниже демонстрация включает теги style и script в Chrome 4, IE7 и Firefox 3.6; Я не пробовал других, но ожидал, что с ними все будет в порядке.
Если вы хотите получить содержимое внешних ссылок, а также встроенный контент, вам, естественно, придется проанализировать результат и следовать src
(на script
с), href
(на link
с rel
= "таблицей стилей") и т. Д. *
Демо-версия:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<title>Test Page</title>
<style type='text/css'>
body {
font-family: sans-serif;
}
</style>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
<script type='text/javascript'>
(function() {
$(document).ready(pageInit);
function pageInit() {
$('#btnGo').click(go);
}
function go() {
alert($('html').html());
}
})();
</script>
</head>
<body>
<input type='button' id='btnGo' value='Go'>
</body>
</html>