%@CODEPAGE=65001 %>
<% Option Explicit %>
<% On Error Resume Next %>
<% Response.Charset="UTF-8" %>
<% Response.Buffer=True %>
<%
'///////////////////////////////////////////////////////////////////////////////
'// Z-Blog
'// 作 者: sipo
'// 版权所有: RainbowSoft Studio
'// 技术支持: rainbowsoft@163.com
'// 程序名称:
'// 程序版本:
'// 单元名称: c_autosaverjs.asp
'// 开始时间: 2006-1-19
'// 最后修改: 2006-7-27
'// 备 注:
'///////////////////////////////////////////////////////////////////////////////
%>
<%
Call System_Initialize()
Public ZC_AUTOSAVE_FILENAME
ZC_AUTOSAVE_FILENAME="autosave"&"_"&MD5(ZC_BLOG_HOST & ZC_BLOG_CLSID & BlogUser.Name)&".txt"
IF IsEmpty(ReQuest.QueryString("act")) Then
SaveContent()
ElseIf Request.QueryString("act")="edit" then
ExportAutoSaveJS()
End IF
'*********************************************************
' 目的: Convert Bytes To Str
'*********************************************************
Function BytesToBstr(body,Cset)
On Error Resume Next
Dim objstream
Set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
Set objstream = Nothing
End Function
'*********************************************************
' 目的: Save Draft And DisPlay
'*********************************************************
Function SaveContent()
If BlogUser.Level>3 Then
Response.Write ZC_MSG259
Response.End
End If
On Error Resume Next
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Type = 2
.Mode = 3
.Open
.Charset = "utf-8"
.Position = objStream.Size
.WriteText=BytesToBstr(Request.BinaryRead(Request.TotalBytes),"UTF-8")
.SaveToFile Server.MapPath("../CACHE/"&ZC_AUTOSAVE_FILENAME),2
.Close
End With
Set objStream = NoThing
If Err.Number=0 then
Response.Write " "&formatdatetime(now,4)&":"&Right("0"&second(now),2)&""&ZC_MSG258&" "
Else
Response.Write " "&formatdatetime(now,4)&""&ZC_MSG257&" "&Err.Number&Err.description&""
End If
Response.End
End Function
'*********************************************************
' 目的: 输出自动保存脚本
'*********************************************************
Function ExportAutoSaveJS()
Response.Clear
'//////////////
Response.Write " function init(){"
If Request.QueryString("type")="normal" Then Response.Write "init_edit();return postForm.value;"
If Request.QueryString("type")="widgeditor" Then Response.Write "init_widgeditor();return postForm.innerHTML;"
If Request.QueryString("type")="fckeditor" Then Response.Write "init_fckeditor();return postForm.innerHTML;"
If Request.QueryString("type")="htmlarea" Then Response.Write "init_htmlarea();return postForm.innerHTML;"
If Request.QueryString("type")="tinymce" Then Response.Write "init_tinymce();return postForm.innerHTML;"
If Request.QueryString("type")="ewebeditor" Then Response.Write "init_ewebeditor();return postForm.innerHTML;"
Response.Write " }"
Response.Write " function restore(obj){"
If Request.QueryString("type")="normal" Then Response.Write "init_edit();postForm.value=obj;"
If Request.QueryString("type")="widgeditor" Then Response.Write "init_widgeditor();postForm.innerHTML=obj;"
If Request.QueryString("type")="fckeditor" Then Response.Write "init_fckeditor();postForm.innerHTML=obj;"
If Request.QueryString("type")="htmlarea" Then Response.Write "init_htmlarea();postForm.innerHTML=obj;"
If Request.QueryString("type")="tinymce" Then Response.Write "init_tinymce();postForm.innerHTML=obj;"
If Request.QueryString("type")="ewebeditor" Then Response.Write "init_ewebeditor();postForm.innerHTML=obj;"
Response.Write " }"
'/////////////
Response.Write " var AutoSaveTime=60;"
Response.Write " var FileName="""&ZC_BLOG_HOST&"CACHE/"&ZC_AUTOSAVE_FILENAME&""";"
Response.Write " var postForm = null; "
Response.Write " var msg = null; "
Response.Write " function init_edit(){"
Response.Write " postForm = document.edit.txaContent;"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write " function init_widgeditor(){"
Response.Write " postForm =document.getElementById('txaContentWidgIframe').contentWindow.document.getElementsByTagName('body')[0];"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write " function init_fckeditor(){"
Response.Write " postForm =document.getElementById(""MyEditor___Frame"").contentWindow.frames[0].document.getElementsByTagName('body')[0];"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write " function init_htmlarea(){"
Response.Write " postForm =document.getElementById('ta').parentNode.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByTagName('body')[0];"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write " function init_tinymce(){"
Response.Write " postForm =document.getElementById('mce_editor_0').contentWindow.document.getElementsByTagName('body')[0];"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write " function init_ewebeditor(){"
Response.Write " postForm =document.getElementById('eWebEditor1').contentWindow.document.getElementsByTagName('body')[0];"
Response.Write " msg = document.getElementById(""msg"");"
Response.Write " }"
'/////////////
Response.Write "var ti=AutoSaveTime;"
Response.Write "function savedraft()"
Response.Write "{ init();"
Response.Write " if (postForm!=null&&typeof(postForm)!=undefined){"
Response.Write " var url = ""c_autosaverjs.asp"";"
Response.Write " var postStr = init();"
Response.Write " if (postStr){"
Response.Write " var ajax = getHTTPObject();"
Response.Write " ajax.open('POST', url, true); "
Response.Write " ajax.setRequestHeader(""Content-Type"",""application/x-www-form-urlencoded""); "
Response.Write " ajax.onreadystatechange = function(){if (ajax.readyState == 4 && ajax.status == 200) msg.innerHTML = ajax.responseText;};"
Response.Write " ajax.send(postStr);"
Response.Write " ti=-1000;"
Response.Write " }else{"
Response.Write " msg.innerHTML = """&ZC_MSG256&""";"
Response.Write " ti=-1000;}"
Response.Write " }else{msg.innerHTML = """&ZC_MSG255&""";ti=-1000;}"
Response.Write "}"
Response.Write "function restoredraft()"
Response.Write "{ init();"
Response.Write "if (window.confirm('"&ZC_MSG254&"'))"
Response.Write "{"
Response.Write " if (postForm!=null&&typeof(postForm)!=undefined){"
Response.Write " var url = FileName;"
Response.Write " var ajax = getHTTPObject();"
Response.Write " ajax.open(""GET"", url+'?random='+Math.random(), true); "
Response.Write " ajax.onreadystatechange = function() { "
Response.Write " if (ajax.readyState == 4 && ajax.status == 200) { "
Response.Write " restore(ajax.responseText);"
Response.Write " msg.innerHTML ="""&ZC_MSG253&"""; } } ;"
Response.Write " ajax.send(null); "
Response.Write " ti=-1000;"
Response.Write " }else{msg.innerHTML = """&ZC_MSG255&""";ti=-1000;}"
Response.Write ""
Response.Write "}"
Response.Write "}"
Response.Write "function Viewdraft()"
Response.Write "{ "
Response.Write "window.open(FileName,'','');"
Response.Write "}"
Response.Write "document.getElementById(""msg2"").innerHTML ="" ["&ZC_MSG015&"] ["&ZC_MSG252&"] ["&ZC_MSG004&"]"";"
Response.Write "function timer() { "
Response.Write "ti=ti-1;"
Response.Write "var timemsg=document.getElementById(""timemsg"");timemsg.innerHTML = ti+"""&ZC_MSG251&""";"
Response.Write "if (ti>=0){window.setTimeout(""timer()"", 1000);}else{if (ti<=-1000)"
Response.Write "{ti=AutoSaveTime;timer();}else{timemsg.innerHTML = """&ZC_MSG250&"..."";savedraft"
Response.Write "();ti=AutoSaveTime;timer();}} }"
Response.Write "window.setTimeout(""timer()"", 0);"
Response.Write " function getHTTPObject() {"
Response.Write " var xmlhttprequest=false; "
Response.Write " try {"
Response.Write " xmlhttprequest = new XMLHttpRequest();"
Response.Write " } catch (trymicrosoft) {"
Response.Write " try {"
Response.Write " xmlhttprequest = new ActiveXObject(""Msxml2.XMLHTTP"");"
Response.Write " } catch (othermicrosoft) {"
Response.Write " try {"
Response.Write " xmlhttprequest = new ActiveXObject(""Microsoft.XMLHTTP"");"
Response.Write " } catch (failed) {"
Response.Write " xmlhttprequest = false;"
Response.Write " }"
Response.Write " }"
Response.Write " }"
Response.Write " return xmlhttprequest;"
Response.Write " }"
End Function
Call System_Terminate()
%>