创建具有 JScript 的 HTML 的 XMLHTTP

2016-02-19 19:24 7 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐创建具有 JScript 的 HTML 的 XMLHTTP,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Web开发 】

  亲爱的 GUI 博士:

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

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

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

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

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

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

  谢谢

  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 写入响应流。

  要试用这种方法,请执行下面所示的简单步骤。使用记事本复制和粘贴,并将所有文件保存在 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
%

  4.打开您的浏览器,定位到 http://localhost/books.asp 页。

  5.您会看到显示包含 books.xml 数据的警报。这是由 XSL 文件中的脚本完成的。您还会在网页上的一个表中看到格式整齐的数据。这是由 XSL 代码完成的。

来源:https://www.tulaoshi.com/n/20160219/1620937.html

延伸阅读
标签: Web开发
JScript并不是面向对象的语言,只是基于对象。它没有重载这个概念,但通过一些技巧还是有办法从某种意义上实现重载。  首先定义一个基类TestA,该类重写了Object继承下来的toString方法。  注:toString方法是用于序列化对象,比如说alert(a)相当于alert(a.toString()); 引用: function TestA(Name)  {  &nb...
标签: Web开发
下面通过创建一个鼠标滑过加亮显示的 HTC 来演示一下创建 HTC 的过程。 1、创建 HTC 文件的架构。一个标准的 HTC 文件含有一个 SCRIPT 块和一对可选的 COMPONENT 标记。 PUBLIC:COMPONENT SCRIPT /SCRIPT /PUBLIC:COMPONENT 2、写一个可执行的脚本。 在下面的代码中,ATTACH 被用于设置 HTC 接收元素在 onmouseover 和 onmouse...
创建 HTML 切片 HTML 切片指定浏览器中出现普通 HTML 文本的区域。HTML 切片不导出图像,它导出出现在由切片定义的表格单元格中的 HTML 文本。   如果要快速更新出现在站点中的文本而无须创建新图形,则 HTML 切片很有用。 若要创建 HTML 切片: 绘制切片对象并将其保留为选定状态。 在"属性"检查器中,...
标签: Web开发
通过XMLHTTP把文本文件载入HTML元素。 html head script type="text/javascript" var xmlhttp; function loadXMLDoc(url) { xmlhttp=null; if (window.XMLHttpRequest)   {// code for Firefox, Opera, IE7, etc.   xmlhttp=new XMLHttpRequest();   } else if (window.ActiveXObject)   {// code for IE6, ...
标签: Web开发
strDBServerName = "." Set objSQLServer = CreateObject("SQLDMO.SQLServer") objSQLServer.LoginSecure = True objSQLServer.Name = strDBServerName objSQLServer.Start False

经验教程

474

收藏

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