热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JSAJAX获取HTML文本、获取JavaScript脚本

获取HTML文本设计响应信息为HTML字符串是一种常用方法,这样再客户端就可以直接使用innerHTML属性把获取的字符串插入到网页中。示例:

获取HTML文本

设计响应信息为HTML字符串是一种常用方法,这样再客户端就可以直接使用innerHTML属性把获取的字符串插入到网页中。

示例:

<%--Created by IntelliJ IDEA.User: 19798Date: 2019/9/28Time: 9:39
--%>
<%&#64; page contentType&#61;"text/html;charset&#61;UTF-8" language&#61;"java" %>
<html>
<head><title>Titletitle><script>function createXMLHTTPObject() {var XMLHttpFactories &#61; [//兼容不同浏览器和版本的创建函数数组function () {return new XMLHttpRequest()},function () {return new ActiveXObject("Msxml2.XMLHTTP")},function () {return new ActiveXObject("Msxml3.XMLHTTP")},function () {return new ActiveXObject("Microsoft.XMLHTTP")}];var xmlhttp &#61; false;for(var i &#61; 0; i < XMLHttpFactories.length; i&#43;&#43;){//尝试调用匿名函数&#xff0c;如果成功则返回XMLHttpRequest对象&#xff0c;否则继续调用下一个try{xmlhttp &#61; XMLHttpFactories[i]();}catch (e) {continue;}break;}return xmlhttp;}script>
head>
<body><h1>AJAX测试h1><button id&#61;"btn" value&#61;"btn" onclick&#61;"f()">按钮button><div id&#61;"grid">div><script>function f() {var ajax &#61; createXMLHTTPObject();ajax.onreadystatechange &#61; function(){if(ajax.readyState &#61;&#61; 4 && ajax.status &#61;&#61; 200){var o &#61; document.getElementById("grid");o.innerHTML &#61; ajax.responseText;}}ajax.open("get", "response.jsp",false);ajax.send();}script>
body>
html>

response.jsp:

<%response.getWriter().write("

" &#43;"" &#43;"" &#43;"
RegExp.exec()通用的匹配模式
RegExp.test()检测一个字符串是否匹配某个模式
");
%>

点击按钮&#xff1a;
在这里插入图片描述
注意&#xff1a;再某些情况下&#xff0c;HTML字符串可能为客户端解析响应信息节省了一些Javascript脚本&#xff0c;但是也带来了一些问题&#xff1a;

  • 响应信息中包含大量无用的字符&#xff0c;响应数据会变得臃肿。因为HTML标记不含有 任何信息&#xff0c;完全可以把它们放置在客户端由Javascript脚本负责生成。
  • 响应信息中包含的HTML结构无法有效利用&#xff0c;对于Javascript脚本来说&#xff0c;它们仅仅是一堆字符串。同时结构和信息混合在一起&#xff0c;也不符合标准设计模式。

获取Javascript脚本

可以设计响应信息为Javascript代码&#xff0c;这里的代码与JSON数据不同&#xff0c;它是可以执行的命令或脚本。

示例&#xff1a;指定服务器端的JS函数

<h1>AJAX测试</h1><button id&#61;"btn" value&#61;"btn" onclick&#61;"f()">按钮</button><script>function f() {var ajax &#61; createXMLHTTPObject();ajax.onreadystatechange &#61; function(){if(ajax.readyState &#61;&#61; 4 && ajax.status &#61;&#61; 200){var info &#61; ajax.responseText;var o &#61; eval("(" &#43; info &#43; ")" &#43; "()");//调用eval()方法把Javascript字符串转换为本地脚本alert(o);//返回客户端当前日期}}ajax.open("get", "response.js",true);ajax.send();}</script>

response.js:

function (){var d &#61; new Date();return d.toString();
}

点击按钮&#xff0c;弹出提示信息&#xff1a;
在这里插入图片描述
注意&#xff1a;在转换时应在字符串签后附加两个小括号&#xff1a;一个包含函数结构体、一个是表示调用函数的。一般很少使用Javascript代码作为响应信息的格式&#xff0c;因为它不能传递更丰富的信息&#xff0c;同时Javascript脚本容易引发安全隐患。


推荐阅读
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
author-avatar
手机用户2502917981
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有