I would like to have a html file with JavaScript, which (file) is able to modify its context. In more details, I imagine it like that. I have a html file, which I open with a browser. I have a text area there where I type my text and press submit button. As a result of that, the context of the form saved somewhere in the html file. What is the easiest and stable way to do that?
I would like to have a html file with JavaScript, which (file) is able to modify its context. In more details, I imagine it like that. I have a html file, which I open with a browser. I have a text area there where I type my text and press submit button. As a result of that, the context of the form saved somewhere in the html file. What is the easiest and stable way to do that?
Share Improve this question asked Oct 4, 2010 at 9:39 RomanRoman 131k173 gold badges368 silver badges467 bronze badges 7- 1 If you're talking about permanent storage, you will need a server side language or service for this. Can you use any? – Pekka Commented Oct 4, 2010 at 9:40
- 4 I would like to do everything on my local puter. I know it's possible without a serve side language. A an working example I can mention TiddlyWiki. – Roman Commented Oct 4, 2010 at 9:44
- Why don't you have a look at it then? – Felix Kling Commented Oct 4, 2010 at 9:46
- TiddlyWiki is a wiki in a single html file. But I can't tell you how they write/save the data. But you may want to look at their source code: tiddlywiki. :-) – Philippe Gerber Commented Oct 4, 2010 at 9:49
- 1 If you download TiddlyWiki, you'll see it actually es with two files — the JAR is what does the saving. – Chuck Commented Oct 4, 2010 at 10:13
1 Answer
Reset to default 9TiddlyWiki saves all its content to a new, local html-with-javascript file in browser-specific ways. This is because writing to the local hard drive is not normally allowed in javascript, for security reasons. If you're interested in specifically how TiddlyWiki writes the file, check the source code, starting with:
function saveFile(fileUrl,content)
{
var r = mozillaSaveFile(fileUrl,content);
if(!r)
r = ieSaveFile(fileUrl,content);
if(!r)
r = javaSaveFile(fileUrl,content);
return r;
}
This requires the user to explicitly override security warnings. When I tried it in Firefox, I had to do so several times. This is not good practice, as a user would be sorely tempted to check "Remember this decision" and potentially expose themselves to malware in the future.
As someone else said, a better idea is to use client-side storage such as the new features in HTML 5 (available in newer browsers), or a more portable library such as Google Gears; or perhaps better, YUI's StorageUtility, which abstracts to a higher level and uses either HTML 5, Google Gears, or SWF depending on what's available.