2010-12-16 10 views
5

Powiel możliwe:
Download textarea contents as a file using only Javascript (no server-side)Display „Zapisz jako” okno i zapisz zawartość zaznaczonego tekstu wewnątrz pola tekstowego w pliku na komputerze klienta

Mam formularz, który pokazuje niektóre użytkownikowi powiązane informacje w obszarze tekstowym. Jeśli użytkownik chce zapisać informacje, to skopiuje tekst z pola tekstowego, a następnie kliknie przycisk [Zapisz], pojawi się okno dialogowe zapisu jako, aby umożliwić użytkownikowi wybranie odpowiedniej ścieżki, a następnie wyeksportować zaznaczony tekst do pliku tekstowego:

Problem polega na tym, że nie wiem, jak wyświetlić okno dialogowe Zapisz jako i pisz do wybranej ścieżki jako plik tekstowy w witrynie klienta (może używać JavaScript lub Jquery?). Więc zastanawiam się, czy ktoś mógłby mi dać jakąś wskazówkę?

Dziękuję bardzo.

+1

Nie sądzę, że możesz to zrobić. – sje397

+0

@jleedev: jednak zaakceptowana odpowiedź była po stronie serwera. –

+1

@tlpd: jest to niemożliwe w javascript, chyba że klient ma IE w systemie Windows, a ich uprawnienia zabezpieczeń pozwalają na tworzenie obiektów COM (które IE zabrania domyślnie). Możesz rozszerzyć swoje wyszukiwanie i wybór tagów, aby włączyć flash, aplety Java itd. –

Odpowiedz

13

tylko IE rozwiązanie:

function SaveContents(element) { 
    if (typeof element == "string") 
     element = document.getElementById(element); 
    if (element) { 
     if (document.execCommand) { 
      var oWin = window.open("about:blank", "_blank"); 
      oWin.document.write(element.value); 
      oWin.document.close(); 
      var success = oWin.document.execCommand('SaveAs', true, element.id) 
      oWin.close(); 
      if (!success) 
       alert("Sorry, your browser does not support this feature"); 
     } 
    } 
} 

próbka Wymagane HTML:

<textarea id="myText"></textarea><br /> 
<button type="button" onclick="SaveContents('myText');">Save</button> 

Spowoduje to zapisanie zawartości danego pola tekstowego w pliku o nazwie równej ID textarea.

jak w przypadku innych przeglądarek, można przeczytać: Does execCommand SaveAs work in Firefox?

przypadku testowego i przykład robocza: http://jsfiddle.net/YhdSC/1/ (tylko IE ..)

UWAGA: https://support.microsoft.com/en-us/help/281119/internet-explorer-saves-html-content-instead-of-the-active-document

To nie może pracować dla innych typów plików niż txt

+0

Dziękuję Ci, Shadow Wizard, sprawdził i ta metoda zadziałała dla mnie. –

+0

@tlpd okrzyki, proszę przyjąć tę odpowiedź, a następnie przejść przez starsze pytania i zaakceptować odpowiedzi, które rozwiązały twój problem. –

+0

Mam klienta, który nalega, że ​​moja strona internetowa musi obsługiwać IE9. To rozwiązanie działa. – oraclesoon