2010-07-11 28 views
5

tôi có một textarea và hai nútLàm thế nào để mở và lưu văn bản trong html vào một tập tin sử dụng javascript trong HTML

như

<form name="form1"> 
<textarea name="text1"> HTML Codes goes here </textarea> 
<input type="button"> Open File 
<input type="button"> Save File 
</form> 

khi tôi bấm vào nút "Save" tôi muốn các văn bản trong textarea được lưu (tôi muốn nó bật lên hộp thoại "lưu dưới dạng")

Khi tôi nhấp vào "mở", nó sẽ cho phép tôi chọn bất kỳ html hoặc textfile ... và tải văn bản trong textfile/htmlcode vào vùng văn bản của tôi.

Tìm thấy mã này trong http://www.dynamicdrive.com/forums/archive/index.php/t-10532.html

<html> 
<head> 
</head> 
<body> 
<script language="javascript"> 
function WriteToFile() 
{ 
var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var s = fso.CreateTextFile("C:\\NewFile.txt", true); 
var text=document.getElementById("TextArea1").innerText; 
s.WriteLine(text); 
s.WriteLine('***********************'); 
s.Close(); 
} 
</script> 

<form name="abc"> 
<textarea name="text">FIFA</textarea> 
<button onclick="WriteToFile()">Click to save</Button> 
</form> 

</body> 
</html> 

này sẽ làm việc nếu nó porvides người dùng lựa chọn để lưu các tập tin ... và tôi quên nói rằng tất cả các file có trong máy tính của khách hàng.

Thanx trước

-Miss Subanki

+0

Nah, trận đấu không bắt đầu trong hơn một giờ, rất nhiều thời gian để treo xung quanh trên SO. Tôi nghĩ rằng không ai trả lời bởi vì bạn đang yêu cầu một cái gì đó là không thể ... nhưng tôi sẽ để lại câu trả lời rõ ràng cho rất kinh nghiệm JavaScript. – Thomas

+0

Cảm ơn bạn đã ủng hộ chúng tôi bằng cách này! : D – Thomas

+0

oh bạn từ hà lan, không cần phải cảm ơn, họ chơi rất tốt .... bây giờ tôi là một fan hâm mộ lớn của netherlands .... họ xứng đáng để giành chiến thắng ... – subanki

Trả lời

1

Bạn có thể lưu tệp bằng Javascript, nhưng bạn phải sử dụng execcommand và sau đó bạn sẽ bị giới hạn trong Internet Explorer.

document.execCommand('SaveAs', true); 
+1

đó là tốt, u có thể cung cấp cho tôi mã để tôi có thể kiểm tra nó .. tôi ít noob trong mã hóa – subanki

+0

Hãy thử this.Not chắc chắn nếu đó là những gì nó được. Đã không sử dụng javascript quá lâu. Tìm kiếm nhanh trên Google trên execCommand sẽ tiết lộ nhiều hơn. document.execCommand ('SaveAs', true); –

+0

thanx đến JC Leyba – subanki

3

Saving - Bạn cần phải làm điều đó server-side, nhưng nó không phải là khó khăn; trong PHP bạn sẽ chỉ buộc một số tiêu đề HTTP trước khi xuất dữ liệu:

// set the content type 
header('Content-type: text/plain'); 
// force save as dialog (and suggest filename) 
header('Content-Disposition: attachment; filename="download.txt"'); 
// next echo the text 
echo $_POST['text']; 

khai mạc - Bạn phải xử lý các tải lên dữ liệu phía máy chủ, trừ khi bạn sử dụng một số độc quyền (mặc dù "mở") API như trong firefox.

+0

tôi chỉ muốn nó để lấy mã html trong một tập tin html khi chúng tôi bấm vào nút mở ... u chắc chắn nó không thể được thực hiện – subanki

+1

Nhưng từ đâu? Nếu đó là máy chủ thì ok, nếu đó là máy khách, thì nó không thể được thực hiện một cách minh bạch. – Christian

+0

Nếu bạn sử dụng mã của mình để đọc lịch sử của người dùng hoặc danh sách mật khẩu đã lưu thì sao? Với "nút mở/hộp thoại", người dùng buộc phải chọn không thành công, do đó làm cho nó có phần an toàn (trừ khi người dùng nghiêm túc câm ;-)). – Christian

-1

Điều này có thể chỉ trong IE, kể từ khi ActiveXObject có quyền truy cập vào các file (Read/Write). như vậy, bạn có thể làm điều đó

Tôi vẫn còn nhớ, tôi đã thử nó một lần và đã thành công

Nhưng nhớ rằng nó chỉ hoạt động trong IE

Các vấn đề liên quan