2013-07-20 7 views
2

Это событие срабатывает, когда я делаю это:

$(document).on('dblclick', function() { 
    alert($(document).html()); 
}); 

Но исключение в консоли:

Timestamp: 20.7.2013 18:59:35 
Error: TypeError: t is null 
Source File: http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js 
Line: 5 

Является ли это jQuery связанная проблема или я использую неправильный подход для получения всего HTML текущего HTML-документа?

+0

посмотреть здесь http://stackoverflow.com/a/12523515/1533609 – bugwheels94

ответ

1

Если вы хотите, все, в том числе DOCTYPE и понять, что он генерируется источник, а не оригинал, вы можете использовать XMLSerializer на document.

$(document).on('dblclick', function() { 
    alert(new XMLSerializer().serializeToString(document)); 
}); 
+0

Спасибо, Пол! Это то, что я ищу! Я хочу поймать все измененное содержимое! Еще раз спасибо! –

+0

Примечание: 'XMLSerializer' не существует в IE8. – cHao

0

Попробуйте этот код, а:

$(document).on('dblclick', function() { 
    alert($('html').html()); 
}); 
+0

Будет ли он получить '' над '' ? –

+0

Нет. Это не так. –

+0

Это не то, что мне нужно ... –

-1

document не является элементом, поэтому он не имеет способ визуализации себя как HTML. В настоящее время нет совместимого способа получить весь фактический источник, за исключением запроса Ajax для текущего URL-адреса, и даже это может не возвратить то же самое.

$('html').html() вы получите все, что находится внутри метки <html>. В большинстве случаев это много. Tack на <!DOCTYPE html>, и у вас есть действующий документ HTML (при условии, что исходный исходный текст был представлен).

document.documentElement.outerHtml, чтобы получить большинство документа. Это будет включать в себя тег <html>, но не что-либо действительное вне его. В частности, это не приведет вас к типу doctype или комментариям, которые появляются до или после.

Для современных браузеров new XMLSerializer может предоставить вам текущее содержимое документа. Однако он не работает в IE8.

И, конечно же, все эти методы говорят браузеру о HTMLify документе, возвращают содержимое , поскольку браузер их понимает. Браузер может исказить недействительный HTML, чтобы он соответствовал документу. Например, материал, появляющийся после того, как элемент <body> может быть перемещен внутри него.

+0

не даст и DOCTYPE :) – bugwheels94

+0

Нет, но вам это не нужно, если вы не используете XHTML. – cHao

+0

Будет ли он '' выше ''? –

Смежные вопросы