创建具有JScript的HTML的XMLHTTP

2016-01-29 18:46 16 1 收藏

创建具有JScript的HTML的XMLHTTP,创建具有JScript的HTML的XMLHTTP

【 tulaoshi.com - ASP 】

 

griefforyou [原作]

亲爱的 GUI 博士:

我有一个关于 XML 的问题。我通过 XMLHTTP 发布一个 ASP 页面,将数据作为 HTML 发送回来,并在 div、表格单元格或任何元素上执行 object.innerHTML。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

我遇到的问题是,有一次,我在 ASP 服务器页上创建一个表单,并将该表单以 HTML 发送回去,这样做一切正常。但我还希望对该页面进行客户端验证,因此我将一个 JScript 页面链接放到了我打算发送回去的响应 HTML 的正文中。这样做以后,脚本就无法运行了。

当我在父页上包括实际的 JScript src 引用时,它可以正常运行。这是因为 JScript 代码没有加载到运行库吗?能否在响应 XMLHTTP post 时不返回 JScript 代码并使它正常工作?可以为所创建的页面即时生成 JScript 函数吗?

我还没有尝试用另一种方式这样做:通过 XMLHTTP 发布 XML 数据,然后将它作为 XML 数据发送回去,再使用 XSL 样式表进行转换。我猜想,可以用那种方式定义 JScript 函数。但这种方式似乎太繁杂了。您有任何建议或答案吗?

谢谢

Peter Sung

GUI 博士的回复:

是的,Peter,您可以在响应 XMLHTTP post/get 时返回 Microsoft JScript 代码,并使该代码得到执行。这样做就像先拿到一块蛋糕,然后再吃掉它。正像您猜想得那样,这样做的最佳方式是利用 XSL 样式表;一旦您使所有类型恢复正常,这很容易。GUI 博士甚至可以提供一个快捷的示例。(当然,也有其他的解决方案。只要响应按正确的顺序包含正确的标头和字符,浏览器将解译响应,以便响应正常工作。如果需要,您可以利用字符串连接生成响应。)

在下面的示例中,GUI 博士在 ASP 页中将 JScript 用于客户端代码和 VBScript(Microsoft Visual Basic 脚本编写版)。采用的策略是这样的:XML 文件只包含数据(以及对样式表的引用)。XSL 文件包含构成完整页面所必需的所有 HTML 格式(包括位于适当位置的脚本)。ASP 页主要包含几个调用,以创建 XMLHTTP 对象,将 XML 文件载入该对象中(利用隐式样式表),并将结果 HTML 写入响应流。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

要试用这种方法,请执行下面所示的简单步骤。使用记事本复制和粘贴,并将所有文件保存在 c:inetpubwwwroot 中。

1.
 创建一个包含以下 XML 文本且名为 books.xml 的文件。记下对 books.xsl 样式表的引用。除此之外,此文件只包含数据。

<?xml version="1.0"?
<?xml-stylesheet type="text/xsl" href="books.xsl" ?
<catalog
   <book id="bk101"
      <authorGambardella, Matthew</author
      <titleXML Developer's Guide</title
   </book
   <book id="bk102"
      <authorRalls, Kim</author
      <titleMidnight Rain</title
   </book
</catalog

 
2.
 然后,创建一个包含以下代码且名为 books.xsl 的文件。此文件是第 1 步中创建的 books.xml 所引用的样式表。它包含将上面的 XML 文件正确地格式化为 HTML 页所必需的信息,甚至在该 HTML 页上包括脚本。

<?xml version="1.0" encoding="UTF-8" ?
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:output method="html" indent="yes"/
<xsl:template match="/"
<html
<head
<titleTest</title
</head
<script language="JScript"
function Test_OnLoad()
{
var objXML = new ActiveXObject("MSXML2.DOMDocument");
objXML.async=false;
objXML.load("books.xml");
alert(objXML.xml);
objXML=null;
}
</script
<body onload="Test_OnLoad()"
<table border="1"
<xsl:for-each select="catalog/book"
<tr
<td
<xsl:value-of select="author"/
</td
<td
<xsl:value-of select="title"/</td
</tr
</xsl:for-each
</table
</body
</html
</xsl:template
</xsl:stylesheet

 
3.
 最后,创建一个包含以下代码且名为 books.asp 的文件。此文件只用于创建 XMLHTTP 对象,为其加载 XML 文件,并将结果 HTML 写入响应流。

<%
dim sxh
Response.contentType = "text/xml"
set sxh = Server.CreateObject("MSXML2.XMLHTTP.3.0")
sxh.open "GET","http://localhost/books.xml",false
sxh.send
Response.write sxh.responsetext
%

来源:http://www.tulaoshi.com/n/20160129/1507242.html

延伸阅读
标签: Web开发
世间万物,千变万化,面向对象的编程亦是对现实社会的模拟,而JavaScript是一种基于对象并且很接近面向对象编程的编程语言,而我们web设计师/程序员跟JavaScript打交道亦要直面JavaScript才能够把网页写得更加丰富多彩.在此先搞清楚一点就是:JavaScript并不仅仅用在Web上,它可以用在许多领域,当然我这里讨论的更多的是JavaScript在Web上的应用,并且...
标签: ASP
  我一直使用Microsoft的FrontPage 98来开发ASP/ADO之类的Internet数据库应用程序。现在我听说许多人都非常信奉采用InterDev做为开发那些程序的工具,因为他们认为FrontPage搞乱了代码。但是在这里,我要列举一些极好的理由来说明我为什么更喜欢FrontPage。 我的许多客户都是企业家,他们认为,对于一个Web站点来说,FrontPage和其他...
标签: ASP
  以前我曾经贴过一篇用XMLHTTP Post Form 的帖子,那里的代码中我Post E文的Value毫无问题,但是后来发现Post含有中文的表单时会出现乱码,原因当然是UTF-8 和GB2312 之间的转换问题了!TNND,打倒GB2312!大家都用UTF8多好。 用XMLHTTP Post Form时的表单乱码有两方面的原因——Post表单数据时中文乱码;服务器Response被XMLHTTP不正确...
JScript 语法错误是指当 JScript 语句违反了 JScript 脚本语言的一条或多条语法规则时导致的错误。JScript 语法错误发生在程序编译阶段,在开始运行该程序之前。 错误号 描述 1019 在循环外不能有“break” 1020 在循环外不能有“continue” 1030 条件编译已关闭 1027 一条 “switch” 语句中只能有一个 “default” 1005 需要“(” 1006...
标签: Web开发
strDBServerName = "." Set objSQLServer = CreateObject("SQLDMO.SQLServer") objSQLServer.LoginSecure = True objSQLServer.Name = strDBServerName objSQLServer.Start False

经验教程

938

收藏

32
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部