前端相关内容

1.eval()

里面可以写js代码,可以把字符串转成对象:
eval('('+字符串变量+')')

在js中反转数组
arr.reverse();
ajax上传文件

var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
    url: 'xxxxx',
    type: 'POST',
    cache: false,
    data: formData,
    processData: false,
    contentType: false,
    success:function(res){
    },
})

2.字符串转小数,再保留两位小数

parseFloat(str).toFixed(2);

3.include

前端需要引用其他域名(接口)返回的一个(html)头部;

方法一:
可以在自己的项目下,自己写一个controller调用那个接口,返回给自己的前端;

在jsp中再引用自己的接口;
<jsp:include page=”/caren/header” flush=”true”/>

注意:我使用<%@ include file=”/caren/header”%>是不好使的。
原因可以自己去查 他俩的区别;

方法二:
写个js异步请求接口,把数据异步渲染上去也行;
$(function(){
			$.ajax({
				url:'http://xxx/api/1/component/header',
				type:'get',
				success:function(data){
					console.log(data);
					$(".xx").html(data);
				}
			});
		})

4.定时器

<script type="text/javascript">

// 这个方法的意思:定时任务 每 1000 * 30 毫秒  执行一次 initMessageInfo 方法
setInterval("initMessageInfo();",1000 * 30);

function initMessageInfo(){
      需要执行的代码......
}
</script>

这个是循环几次写几次
setTimeout(()=>{
	需要执行的代码......
	setTimeout(()=>{
		需要执行的代码......
	},1000)
},1000)

5.不是问题的问题

可以通过在input框中加入 autocomplete=“off” 不让历史记录显示
在这里插入图片描述

6.replace

这种写法相当于replaceAll,把所有的 - 替换成 :
str.replace(/-/g,":");

选择器

$("table").off("click",".layui-form-checkbox").on("click",".layui-form-checkbox",function () {

$(this).parents(".layui-row").siblings().find(".layui-form-checkbox").removeClass("layui-form-checked").siblings("input").prop("checked",false);
}


$("input[name^='id']:checked").each(function () {
      let id=$(this).val();
    });

jquery 判断是否是最后一个同级元素

html

<tbody>
<tr>
    <td width="60" style="padding:12px 0;">
    	<a href="javascript:;" class="add"></a>
    </td>
    <td width="120"></td>
    <td><input name="query" type="text" ></td>
    <td width="80"></td>
</tr>
<tr>
    <td width="60" style="padding:12px 0;">
    	<a href="javascript:;" class="add"></a>
	</td>
    <td width="120"></td>
    <td><input name="query" type="text" ></td>
    <td width="80"></td>
</tr>
<tr>
    <td width="60" style="padding:12px 0;">
    	<a href="javascript:;" class="add"></a>
    </td>
    <td width="120"></td>
    <td><input name="query" type="text" ></td>
    <td width="80"></td>
</tr>
</tbody>

js

$("body").on("click",'tbody tr td .add',function(){

	var aon="逻辑运算框";
	var total=$(this).parents("tbody").find("tr").length;
	var index=$(this).parents("tr").index();
	if(total==index+1){
		//最后一行
		$(this).parents("tr").find("td:last").append(aon);
	}else{
		//不是最后一行,在倒数第二行加逻辑运算框
		$(this).parents("tbody").find("tr:last").prev().find("td:last").append(aon);
	}

}

input 框限制

只能输入数字

 <input type="text" oninput="value=value.replace(/[^\d]/g, '')" />

限制输入字数

<input  type="text" onChange="if(this.value.length>10){this.value=this.value.slice(0,10)}" onkeydown=" if (event.keyCode ===13) {search()}">

js apend html 加事件

这个写法记录一下,下次直接 copy

$(".history_search").append('<a href="javascript:;" οnclick="quickSearch('+ "\'"+obj.recordName+"\'" +')">'+obj.recordName+'</a>');

login页面 表单密码加密解密

前端对密码加密

密码传给后台之前使用 jsencrypt 进行加密

import JSEncrypt from 'jsencrypt/bin/jsencrypt'

// 密钥对生成 http://web.chacuo.net/netrsakeypair

const publicKey = 'xxxx'

const privateKey = 'xxxx'

// 加密
export function encrypt(txt) {
  const encryptor = new JSEncrypt()
  encryptor.setPublicKey(publicKey) // 设置公钥
  return encryptor.encrypt(txt) // 对需要加密的数据进行加密
}

// 解密
export function decrypt(txt) {
  const encryptor = new JSEncrypt()
  encryptor.setPrivateKey(privateKey)
  return encryptor.decrypt(txt)
}

后台解密

对前台传来的密码解密

// 这里的密钥需要与前端的相同
String privateKey="xxx";
// 这里使用的 hutool工具包
RSA rsa=new RSA(privateKey,null);
String password = new String(rsa.decrypt("password==", KeyType.PrivateKey));
System.out.println(password);

js 实现Ctrl + C 复制功能


//data就是需要复制的字符串
function copyCode(data) {
		//创建一个input框
      let input = document.createElement('input');
      //设置id
      input.id = "temp_copy";
      //设置只读
      input.setAttribute('readonly', 'readonly');
      //赋值
      input.setAttribute('value', data);
      //把input添加到body中
      document.body.appendChild(input);
      //选中input框,取值复制
      $('#temp_copy').select();
      document.execCommand("copy",false,null);
      //删除input框
      document.body.removeChild(input);
     
    }

自己的css总结

让div全屏

html, body {
margin:0;
padding:0;
}

a标签禁用+置灰

.current{
        pointer-events: none;
        filter: alpha(opacity=50);/*IE滤镜,透明度50%*/
        -moz-opacity: 0.5;/*Firefox私有,透明度50%*/
        opacity: 0.5;/*其他,透明度50%*/
    }

字符串过多时显示…

	text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3; //几行
    -webkit-box-orient: vertical;

js 下载网络图片

/**
 * 下载图片并重命名
 * download('https://www.baidu.com/img/baidu_resultlogo@2.png', 'ab.png')
 */

/**
* 下载
* @param  {String} url 目标文件地址
* @param  {String} filename 想要保存的文件名称
*/
export function downloadRemoteImg(url, filename) {
	getBlob(url, function(blob) {
		saveAs(blob, filename);
	});
};

/**
 * 获取 blob
 * @param  {String} url 目标文件地址
 * @return {cb} 
 */
 function getBlob(url,cb) {
	var xhr = new XMLHttpRequest();
	xhr.open('GET', url, true);
	xhr.responseType = 'blob';
	xhr.onload = function() {
			if (xhr.status === 200) {
				cb(xhr.response);
			}
	};
	xhr.send();
}

/**
* 保存
* @param  {Blob} blob     
* @param  {String} filename 想要保存的文件名称
*/
function saveAs(blob, filename) {
if (window.navigator.msSaveOrOpenBlob) {
		navigator.msSaveBlob(blob, filename);
} else {
		var link = document.createElement('a');
		var body = document.querySelector('body');

		link.href = window.URL.createObjectURL(blob);
		link.download = filename;

		// fix Firefox
		link.style.display = 'none';
		body.appendChild(link);

		link.click();
		body.removeChild(link);

		window.URL.revokeObjectURL(link.href);
};
}

富文本编辑器 tinymce

1.添加 tinymce 以及 需要绑定的元素

<!--版本5.10.0-->
<script type="text/javascript" src="/assets/admin/tinymce/tinymce.min.js"></script>
<textarea id="my_tinymce" name="content"></textarea>

2.初始化js

function example_image_upload_handler (blobInfo, success, failure, progress) {
    var formData=new FormData();
    var file = blobInfo.blob();
    formData.append('file', file, file.name );
    $.ajax({
        url: "uploadCutTitleImg.do",
        type: "post",
        data: formData,
        processData: false,
        contentType: false,
        dataType:'json',
        success: function(data) {
            success(data.msg);
        },
        error: function(e) {
            alert("图片上传失败");
        }
    });
};
function example_file_picker_callback(callback, value, meta) {
    var input = document.createElement('input');
    input.setAttribute('type', 'file');
    input.onchange = function() {
        var file = this.files[0];
        var form = new FormData();
        form.append("file", file);
        $.ajax({
            url: "uploadCutTitleImg.do",
            type: "post",
            data: form,
            processData: false,
            contentType: false,
            success: function(data) {
                callback(data.msg);
            },
            error: function(e) {
                alert("图片上传失败");
            }
        });
    };
    input.click();
}
$(function() {
tinymce.init({
    selector: '#my_tinymce',
    body_class: 'TinyMCE_class',
    language:'zh_CN',
    //插件列表:indent2em(首行缩进,这个插件需要去上面的链接下载) 
    plugins : 'lists advlist autolink autoresize link image image preview autosave charmap emoticons fullpage code ' +
        'codesample fullscreen hr insertdatetime pagebreak print quickbars searchreplace table toc wordcount indent2em help',
    //工具栏
    toolbar:['undo redo | fontsizeselect | styleselect | forecolor backcolor | code removeformat charmap insertdatetime emoticons| image preview',
        'numlist bullist | bold italic superscript subscript  | alignleft aligncenter alignright alignjustify | outdent indent indent2em'],
    fontsize_formats: '11px 12px 14px 16px 18px 24px 36px 48px',//fontsize选择范围
    max_height: 900,
    min_height:300,
    branding: false,//隐藏右下角技术支持
    pagebreak_split_block: true,//插入分页符时拆分块元素
    quickbars_insert_toolbar: false,//快速插入 触发提供的工具栏
    quickbars_selection_toolbar: 'bold | h1 h2 h3',//快速选择 触发提供的工具栏
    images_upload_handler: example_image_upload_handler,//拖动图片上传方法
    file_picker_callback: example_file_picker_callback,//选择图片上传方法
    //添加样式
    content_style:'@font-face {font-family: \'dbkFont\';src: url(\'${base}/assets/admin/fonts/dbk.ttf\');}.TinyMCE_class {font-family:\'dbkFont\'}',
});
});

3.获取编辑器中的内容

var content=tinyMCE.activeEditor.getContent();

图片裁剪插件 cropper

docs目录是例子可以下载下来,看看
在这里插入图片描述

小程序相关

H5跳转小程序文档

直达文档链接

注意query参数不支持‘%’,所以在参数中不能对returnUrl编码,可以放在数据库中,异步请求获取url,query参数可以使用 ‘key=value&key2=value’格式

在小程序中 onLoad: function (query) { query.key 可以直接获取参数 }

公众号跳转小程序

直达文档链接

开放标签的path属性不能使用方法返回值,所以如果url中需要 encode 时,只能自己 encode 完以后写死在页面上

web-view 中嵌套H5

<input  type="file" accept="image/*" name="uploadFile"  id="uploadFile" />

注意 input 标签中不能有 multiple="multiple" ,否则 Android小程序打不开相机。

Freemark相关

1.Freemark 自定义宏(也就是自定义标签)

<@p.form id="jvForm" tableClass="table table-hover table-striped table-bordered vtable" action="directive/o_save.do" labelWidth="30">
	<@p.td required="true" label='directive.module' colspan='2' width="100">
		<@p.select onchange="selectModule()" />
	</@p.td>
</@p.form>

这段html把我吓了一跳,什么玩意

解释一下:

p:是在freemarkerConfig中配置的一个 别名
<prop key="auto_import">/WEB-INF/ftl/index.ftl as p,/WEB-INF/ftl/spring.ftl as s</prop>

form/td/select:都是自定义的 <#macro 标签,在index.ftl中都已经定义好了

spring.ftl 中的

<#macro m code>${springMacroRequestContext.getMessage(code)}</#macro>
springMacroRequestContext:这个东西是固定的 在 org.springframework.web.servlet.view.AbstractTemplateView 中定义好的

2.Freemark 标签类型<>,[]

配置文件中设置 tag_syntax 属性可以控制标签类型

<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

<property name="freemarkerSettings">
	<props>
		<!-- 设置标签类型 auto_detect(自动检测第一次出现的标签类型)、angle_bracket(<>)、square_bracket([])-->
		<prop key="tag_syntax">auto_detect</prop> 
		<prop key="template_update_delay">5</prop>
		<prop key="defaultEncoding">UTF-8</prop>
		<prop key="url_escaping_charset">UTF-8</prop>
		<prop key="locale">zh_CN</prop>
		<prop key="boolean_format">true,false</prop>
		<prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
		<prop key="date_format">yyyy-MM-dd</prop>
		<prop key="time_format">HH:mm:ss</prop>
		<prop key="number_format">0.######</prop>
		<prop key="whitespace_stripping">true</prop>
		<!--空值处理<prop key="classic_compatible">true</prop>-->
		<prop key="auto_import">/WEB-INF/ftl/doccms/index.ftl as p,/WEB-INF/ftl/spring.ftl as s</prop>
	</props>
</property>
</bean>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Web前端开发课程的学习内容通常包括以下方面: 1. HTML:学习HTML标记语言,包括标签、属性、表单等内容,用于创建网页结构。 2. CSS:学习CSS样式表语言,包括选择器、盒模型、布局、动画等内容,用于美化网页样式。 3. JavaScript:学习JavaScript语言,包括变量、数据类型、流程控制、函数、DOM操作等内容,用于实现网页交互功能。 4. 前端框架:学习一些流行的前端框架,如Vue、React、Angular等,用于提高开发效率和网站性能。 5. 前端工具:学习一些前端工具,如Webpack、Gulp、NPM等,用于构建和打包网站。 6. 前端性能优化:学习一些前端性能优化技巧,如减少HTTP请求、压缩资源、使用CDN等,用于提高网站性能。 7. 跨平台开发:学习一些跨平台开发技术,如使用React Native、Electron等,用于开发移动端应用或桌面应用。 8. 测试和调试:学习一些测试和调试技巧,如单元测试、端到端测试、浏览器开发者工具等,用于提高代码质量和排除问题。 以上是Web前端开发课程的主要学习内容,当然具体的课程内容和深度还会因学校或教育机构的不同而有所区别。 ### 回答2: Web前端开发课程学习内容主要包括HTML、CSS、JavaScript等方面的内容。首先,学习HTML(超文本标记语言)是Web开发的基础,它是一种用于创建网页结构的标记语言,通过学习HTML,我们可以掌握网页的基本结构、标签的使用以及文本、图片、链接等元素的插入与排版。其次,学习CSS(层叠样式表)可以帮助我们美化网页的外观和布局,通过掌握CSS,我们可以使用样式规则来控制字体、颜色、背景、边框等网页元素的样式,实现页面的美观和一致性。最重要的是,学习JavaScript可以为网页增加交互和动态效果,通过掌握JavaScript,我们可以编写代码来实现表单验证、页面元素的动态变化、事件的触发和响应等功能。此外,学习前端框架和工具也是课程的一部分,如Bootstrap、jQuery等,它们可以为我们提供更快速、高效的开发方式,并具有更好的跨浏览器兼容性和响应式设计。另外,学习版本控制工具如Git也是必不可少的,它可以帮助我们进行代码的协作开发和版本管理。除了以上内容,还可以涉及到响应式设计、移动端开发、性能优化、跨平台开发等更高级的技术和工具。通过系统学习这些内容,我们可以掌握前端开发的基本技能,能够独立完成网页的开发和优化工作。 ### 回答3: Web前端开发课程学习内容主要包括以下几个方面。 首先,HTML和CSS是前端开发的基础,课程会通过讲解标签、元素和属性,教授学生如何使用HTML来搭建网页结构,并通过CSS来控制网页的样式,包括字体、颜色、布局等。同时,学生还会学习CSS框架和预处理器,如Bootstrap和Sass,以提高页面的响应式设计和开发效率。 其次,JavaScript是前端开发中不可或缺的一部分,课程会重点教授JavaScript的基本语法、数据类型、循环、条件语句等,同时还会介绍DOM操作和事件处理,让学生能够通过JavaScript来实现页面的动态交互效果。 此外,课程还会涵盖前端开发的常用工具和框架,如代码编辑器、版本控制系统、调试工具等,以及常见的前端开发模式和规范,如模块化开发、代码优化和性能调优等。 还有,响应式设计和移动端开发也是课程的重要内容,学生将学习如何使用媒体查询和流式布局来实现适配不同屏幕尺寸的网页,并介绍移动端开发的相关概念和技术,如响应式框架、触摸事件等。 最后,课程往往会包含实际项目的实践,学生将通过独立或团队完成一些实际的网页开发项目,以锻炼他们的实践能力和项目管理能力。 通过这些学习内容的学习,学生将掌握Web前端开发的基本原理和技术,具备搭建、设计和实现网页的能力,为进一步深入学习和工作打下坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值