2010-10-04 8 views
5

Chciałbym mieć plik HTML z JavaScript, który (plik) jest w stanie zmodyfikować jego kontekst. Bardziej szczegółowo, wyobrażam to sobie. Mam plik HTML, który otwieram za pomocą przeglądarki. Mam tam pole tekstowe, w którym wpisuję tekst i przycisk Wyślij. W rezultacie kontekst formularza zapisany jest gdzieś w pliku html. Jaki jest najłatwiejszy i stabilny sposób na zrobienie tego?Samo modyfikujący plik html-JavaScript

+1

Jeśli mówisz o stałej pamięci, będziesz potrzebować języka lub usługi po stronie serwera. Czy możesz użyć dowolnego? –

+2

Chciałbym zrobić wszystko na moim lokalnym komputerze. Wiem, że to możliwe bez języka obsługi strony. Przykładem roboczym mogę wymienić TiddlyWiki. – Roman

+0

Dlaczego więc na to nie spojrzysz? –

Odpowiedz

8

TiddlyWiki zapisuje całą zawartość do nowego, lokalnego pliku html-with-javascript w specyficzny dla przeglądarki sposób. Wynika to z tego, że zapisywanie na lokalnym dysku twardym zwykle nie jest dozwolone w javascriptie, ze względów bezpieczeństwa. Jeśli jesteś zainteresowany w szczególności jak TiddlyWiki zapisuje plik, sprawdź the source code, począwszy od:

function saveFile(fileUrl,content) 
{ 
    var r = mozillaSaveFile(fileUrl,content); 
    if(!r) 
     r = ieSaveFile(fileUrl,content); 
    if(!r) 
     r = javaSaveFile(fileUrl,content); 
    return r; 
} 

wymaga użytkownikowi wyraźnie zastępują ostrzeżenia bezpieczeństwa. Kiedy próbowałem go w Firefoksie, musiałem to zrobić kilka razy. Nie jest to dobrą praktyką, ponieważ użytkownik byłby bardzo kuszony, by sprawdzić "Zapamiętaj tę decyzję" i potencjalnie narazić się na złośliwe oprogramowanie w przyszłości.

Jak ktoś inny powiedział, lepszym pomysłem jest użycie pamięci po stronie klienta, takiej jak nowe funkcje w HTML 5 (dostępne w nowszych przeglądarkach) lub bardziej przenośna biblioteka, taka jak Google Gears; a może lepiej, YUI's StorageUtility, która przenosi się na wyższy poziom i używa HTML 5, Google Gears lub SWF w zależności od tego, co jest dostępne.

+0

Pamiętaj, że dyskusja na temat przenośności opcji pamięci po stronie klienta jest nieaktualna. – LarsH

Powiązane problemy