分享
 
 
 

转贴(MSDN):通过 XMLHTTP 的客户端脚本

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

通过 XMLHTTP 的客户端脚本

在进行 Internet 或基于 Windows 的开发方面,您遇到过问题或难题吗?这时,您可以求助于 GUI 博士 (drgui@microsoft.com);GUI 博士每个月会两次做客 MSDN,在线回答您的问题。虽然博士忙碌的工作安排使他无法回复所有的问题,但他会尽可能地在这里回答更多的问题。如果恰好选中了您的问题,那么博士会送您一件 GUI 博士 T 恤衫!

摘要:介绍了利用客户端脚本编写来创建网页的方法,即使用系统的 XMLHTTP 对象、XML 文件和 XSL 样式表来包含格式和脚本。

Dr. GUI's Bits and Bytes

这是 GUI 博士的网络日记的标题。遗憾的是,最近博士还没有为此专栏添加更多的内容。可能是因为西雅图下雨太多,或者天气太冷,或者阳光太猛烈,再或者是被某些事情给耽搁了。

但您可能会喜欢阅读那里的 Alice in Blibbetland 故事。或者是长篇大论的倒霉蛋儿 iLoo。

总之,如果您有话要说,请在当天的意见栏上发表您的评论。或者给 GUI 博士写封电子邮件...

现在,开始解答您的问题!

创建具有 JScript 的 HTML 的 XMLHTTP

亲爱的 GUI 博士:

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

我遇到的问题是,有一次,我在 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 写入响应流。

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

1.

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

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="books.xsl" ?>

<catalog>

<book id="bk101">

<author>Gambardella, Matthew</author>

<title>XML Developer's Guide</title>

</book>

<book id="bk102">

<author>Ralls, Kim</author>

<title>Midnight 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>

<title>Test</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 代码完成的。

致谢!

GUI 博士在此感谢出色的专家小组,包括 Vijaya Byri 及其专门助手 Maura Baughman。如果 GUI 博士在回答问题时没有大家的帮助,问题的解答就不会这么令人满意。

向 GUI 博士请教

著名的问题解决专家“GUI 博士”很高兴在 Internet 和基于 Windows 的开发方面提供百科全书式的知识,使各地的开发人员从中受益。如果您有无法解决的问题,请将您的疑问发送到 drgui@microsoft.com。虽然博士忙碌的工作安排使他无法回复所有的问题,但他会尽可能地在这里回答更多的问题。如果恰好选中了您的问题,那么博士会送您一件 GUI 博士 T 恤衫!(请注意:问题可能经过整理,以确保语法正确,逻辑清晰。)

GUI 博士提供的知识还不够多?请阅读 GUI .NET 博士专栏文章!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有