I got some nice layout generator using jquery dynamic forms, and jquery ui features to change number of used elements, their css properties etc. Everything looks great but there is one problem with presentation of current result. I would like to save generated html DOM and parse it somehow ( delete hidden elements from DOM tree etc ). Any ideas how to save current (modified) html + css?
-
Save it to where? To a cookie?James– James2010-12-21 10:13:52 +00:00Commented Dec 21, 2010 at 10:13
-
If you need to save it to a file, then you can use Firebug for it. It will also show the changes that JQury have made to the dom tree.Tyde– Tyde2010-12-21 10:36:14 +00:00Commented Dec 21, 2010 at 10:36
-
Is there a way to do that by node.js? I mean can I create js script, that I could run from command line using node.js that would do html-file -> html-file transformation?Hurda– Hurda2015-02-12 21:59:45 +00:00Commented Feb 12, 2015 at 21:59
3 Answers
Solution using jquery follows:
Step 1:
convert the whole (modified) html to a string representation:
var html = $('html').clone();
var htmlString = html.html();
Step 2:
Base64 encode the htmlString and put it into a datauri inside a hyperlink:
var datauri = "data:text/html;charset=utf-8;base64," + $base64.encode(htmlString);
$("body").append("<a href='" + datauri + "'>Save</a>");
Note: I'm using this library for base64 encoding above.
Step 3:
Right-click on the 'Save' link dynamically created above and choose "Save As" from the browser's context menu. Your modified html file will be saved as a new html document on your local filesystem.
I've tried this before and it works. Hope it will work for you and others as well. This solution works without any server-side technology, nor does it require Flash, Java applets, Active-X controls, XPCOM or any proprietary client-side technology. The only thing required is any (modern) browser that supports data-uris.
2 Comments
There is another way if you use chrome.
- Open "development tools" (trl+mayus+i on windows)
- Go to "elements" tab. You will see the actual (modified) DOM
- Find the node you are interested (probably HTML or BODY but could be any), right click and select COPY AS HTML
- Paste in your favorite text editor and save.
The solution provided by tsaixingwei works fine on small DOMs, but when you have large documents it will not work. I've just tried with a doccument containing about 30K lines and had to use the method i've just explained.