I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...
MS added the outerHTML and innerHTML some time ago but they aren't universally supported. See quirksmode for browser compatibility for what will work for you. All support innerHTML however (except Konqueror).
ReplyDeletevar txt = document.documentElement.innerHTML;
alert(txt);
document.documentElement.innerHTML
ReplyDeleteYou can also do:
ReplyDeletedocument.getElementsByTagName('html')[0].innerHTML
You will not get the Doctype or html tag, but everything else...
I believe document.outerHTML should return that for you.
ReplyDeleteEdit: As the MSDN page on the outerHTML property notes, there is no standard that supports this, although IE 6+ and more recently several other browsers now support it. Colin's answer links to the W3C quirksmode page, which offers a good comparison of cross-browser compatibility (for other DOM features too).
document.documentElement.outerHTML
ReplyDeleteThe correct way is actually:
ReplyDeletewebBrowser1.DocumentText
I always use
ReplyDeletedocument.getElementsByTagName('html')[0].innerHTML
Probably not the right way but I can understand it when I see it.