html自动生成网页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html自动生成网页相关的知识,希望对你有一定的参考价值。
这是我用dreamweave新建的一个html网页,里边有两个文本区域和一个按钮,我希望达到的效果是,当我点击按钮的时候,它可以在指定路径生成一个新的html网页,网页内容就是大的文本区域里的文字,然后用小的文本区域里的文字+“.html”作为新的网页的名称,尽量不要使用数据库和服务器。
求各位高手指点,能提供详细的代码和解析,不胜感激。
假如可以的话,能否更进一步,如果我要让新生成的网页内容使用样式,甚至运用模版,代码又是怎样的呢?
由于安全问题, 在不使用服务器语言的情况下, 浏览器是无法生成文件在本地磁盘中. 如果能够生成文件, 这会是一件非常危险的事情.
当然也有例外, 就是在IE中通过VBS/JS脚本并使用ActiveX控件.
不过在IE中, 这个网页并不是一打开就能执行该代码, IE6以后, 默认情况下浏览器会提示拦截网页中存在风险脚本和使用了Activex. 需要允许后才能运行.
以下是IE中的示例代码, 该代码只能在IE中使用, 除了IE以外任何的浏览器都无效.
题主也不用问别的浏览器是否能够达到目的, 服务器网页语言之所以能创建文件, 也是因为相关的控件在操作系统中进行了注册才能进行的
<!DOCTYPE HTML><HTML>
<HEAD>
</head>
<BODY>
<script type="text/vbscript">
Sub CreateAfile
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("r:\\testfile.txt", True)
MyFile.WriteLine("这是一个测试。")
MyFile.Close
End Sub
CreateAfile()
</script>
</BODY>
</html> 参考技术A html有这功能?
我咋没听说过呢?
html具备这功能,是你自己想象的呢?还是你确实去肯定过?
据我所知,html是标记性语言而非逻辑处理脚本语言,用于标记网页内容展示,好像不具备逻辑处理功能! 参考技术B 其实仔细想想,这个问题很简单。不要忘了JS哦,或者jQuery,这两个都可以在静态网页中运行,你静下心来,保持清晰的思路,给这个按钮添加一个单击事件,这个事件就是你的需求。
祝好运!
如何实现自动生成HTML网页
我理解你的问题是生成动态网页是吧。一般动态的HTML是通过支持CGI 即 (通用网关接口)的语言生成的。例如 PHP ASP PYTHON RUBY等。当然前段的JS 也可以通过DOM 生成动态HTML
所谓HTML实际上是一种标记语言。而后端脚本语言通常可以控制 终端设备输出显示。这样利用输出加上通用网关接口就可以实现 动态的HTML输出(在这里实际上用户浏览器就是一个终端。)
一般后台语言生成HTML都是通过模板实现 例如PYTHON
import cgi
reshtml = \'\'\'Content-Type: text/html\\n
<HTML><HEAD><TITLE> 7 Friends CGI Demo (dynamic screen)
</TITLE></HEAD>
<BODY><H3>Friends list for: <I>%s</I></H3>
Your name is: <B>%s</B><P>
You have <B>%s</B> friends.
</BODY></HTML>\'\'\'
form = cgi.FieldStorage()
who = form[\'person\'].value howmany = form[\'howmany\'].value print reshtml %
(who, who, howmany)
可以用url重写
===========================================
动态生成Html文件也不挺容易实现的,你可以引用
System.IO.StreamWriter这个命名空间,这是我项目中动态生成html的方法你可以参考一下:
/// <summary>/// 生成HTML文件
/// </summary>
/// <param name="FilePath">保存文件路径</param>
/// <param name="Content">文件流内容</param>
/// <param name="FileName">文件名</param>
public static void CreateHtmlFile(string FilePath, string Content, string FileName)
if (Directory.Exists(FilePath) == false)
Directory.CreateDirectory(FilePath);
using (StreamWriter m_streamWriter = new StreamWriter(FilePath + "\\\\" + FileName, false, System.Text.UnicodeEncoding.GetEncoding("UTF-8")))
m_streamWriter.WriteLine(Content);
m_streamWriter.Flush();
m_streamWriter.Close();
参考技术B 使用dw那些设计模式,设计好之后点击浏览就会自动生成网页 参考技术C 以最简单的新闻网页为例,先是做一个模板页,假定其中3个地方要动态更换的:标题,内容,日期,哪么模板中这3个地方都要用特殊的名称表示。
要生成html页时,先读入html模板页,再查询数据库,把查询到标题,内容,日期的实际值替换模板中的特殊名称,并按规则命名另存这个文件。
以上是动态生成html页的基本原理,实际工作中,可灵活处理,比如一次性生成所有页,或者发布一个生成一个,可以用一个模板,也可以根据类别用3个5个模板。模板可以保存为文件文件,也可保存在数据库中等等。
?
以上是关于html自动生成网页的主要内容,如果未能解决你的问题,请参考以下文章