开发知识点- HTML/JavaScript
- Promise对象
- apify
- phantomjs
- Summernote
- stringify
- setTimeout
- 数据类型
- js 编码
- base64
- data
- url
- 循环
- object
- json
- class
- thingjs 3D可视化
- html开始
- HTML简介和发展史
- 开发工具的使用
- HTML5骨架
- HTML基本语法
- HTML常用标签
- HTML基本使用
- HTML标签的基本使用 (有序和无序列表)
- HTML标签的基本使用-表格
- HTML标签的基本使用-form表单
- HTML布局常用标签-div和span
- Javascript 基础入门
- JavaScript简介
- JavaScript用途
- JavaScript组成
- 数字类型字面量
- 变量基本使用
- 变量提升
- 类型检测
- 流程控制语句
- 数学运算
- 比较运算
- 逻辑运算
- if语句
- switch基础应用
- 嵌套循环
- break, continue while do while
- Function 函数
- 函数认知
- 函数基本使用
- 局部变量
- 作用域
- return关键字
- 函数实战应用
- 回调
- 递归
- 函数自执行
- 数组
- 堆栈空间
- 对象解构赋值语法
- 正则表达式
- 正则表达式概述
- 正则使用技巧
- 正则字符集
- 正则边界符
- arguments
- 闭包
- DOM操作
- DOM认识
- DOM方法
- 操作节点属性
- 操作节点样式
- 节点事件
- Lodash库
- xlink
- svg
- ArkTS-鸿蒙开发-Typescript
- IED
- 基础
- 变量
- 变量类型推导
- number数字类型
- boolean类型
- string字符串类型
- Array数组类型
- Object类型
- Symbol类型
- null和undefined类型
- TS自身特有的数据类型
- any类型
- unknown类型
- void类型
- never永远不会发生值的类型
- tuple元组类型
- 方法
Promise对象
Promise是JavaScript中用于处理异步操作的一个对象,它表示一个最终可能是成功或失败的操作及其结果值。
getListFromScreen () { return new Promise((resolve, reject) { }
}
apify
phantomjs
是一个服务器端的 JavaScript API 的 WebKit。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG 使用场景
Summernote
Summernote 是一个基于 Bootstrap 的富文本编辑器,它支持上传文件到服务器的功能。要实现上传文件的功能,
您需要在 Summernote 的初始化选项中设置 callbacks.onFileUpload 函数,
这个函数会在用户选择文件后被调用。在这个函数中,您可以使用 FormData 对象来封装文件数据
并使用 XMLHttpRequest 对象来发送异步请求到服务器。下面是一个简单的示例代码,假设您已经在页面中引入了 jQuery 和 Summernote 的相关脚本和样式:<!-- HTML -->
<textarea id="summernote"></textarea>
// JavaScript
$(document).ready(function() {$('#summernote').summernote({height: 200,tabsize: 2,callbacks: {onFileUpload: function(files) {// 创建 FormData 对象var data = new FormData();// 遍历文件列表,添加到 FormData 对象中for (var i = 0; i < files.length; i++) {data.append("media_upload[]", files[i]);}// 创建 XMLHttpRequest 对象var xhr = new XMLHttpRequest();// 设置请求方法和地址xhr.open("POST", "/upload");// 设置请求完成后的回调函数xhr.onload = function() {if (xhr.status === 200) {console.log("上传成功");} else {console.log("上传失败");}};// 发送请求xhr.send(data);}}});
});
placeholder 属性规定可描述输入字段预期值的简短的提示信息(比如:一个样本值或者预期格式的短描述)。该提示会在用户输入值之前显示在输入字段中。注意:placeholder 属性适用于下面的 input 类型:text、search、url、tel、email 和 password。
字符串里一个\符是用来作转义符的, \\ 才表示 \ 符号function htmlDecodeByRegExp(str) {var temp = "";if (str.length == 0) return "";temp = str.replace(/&/g, "&");temp = temp.replace(/</g, "<");temp = temp.replace(/>/g, ">");temp = temp.replace(/ /g, " ");temp = temp.replace(/'/g, "\'");temp = temp.replace(/"/g, "\"");return temp;}
stringify
VUE layuiJSON.stringifyJSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。语法
JSON.stringify(value[, replacer[, space]])
参数说明:value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。replacer:
可选。用于转换结果的函数或数组。如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
var a = []; //空数组var a = [1, true, "0", [1,0], {x:1,y:0}]; //包含具体元素的数组使用构造函数的方式定义使用 new 运算符调用 Array() 类型函数时,可以构造一个新数组。var 数组名 = new Array(); //空数组var 数组名 = new Array(值列表); //实数组如果给Array()传递一个数值参数,则该参数值等于数组 length 的属性值,可以定义数组的长度,即包含元素的个数。var a = new Array(5); //指定长度的数组unshift()函数来在数组开头插入元素,该函数能够把一个或多个参数值附加到数组的头部:array.unshift(元素1, 元素2, ..., 元素X)array_values() 函数可以将关联数组转化为索引数组,将字符串下标转为纯数字下标
1、window.location.href(设置或获取整个 URL 为字符串)var test = window.location.href;
alert(test);
返回:http://i.jb51.net/EditPosts.aspx?opt=12、window.location.protocol(设置或获取 URL 的协议部分)var test = window.location.protocol;
alert(test);
返回:http:3、window.location.host(设置或获取 URL 的主机部分)var test = window.location.host;
alert(test);
返回:i.jb51.net4、window.location.port(设置或获取与 URL 关联的端口号码)var test = window.location.port;
alert(test);
返回:空字符(如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符)5、window.location.pathname(设置或获取与 URL 的路径部分(就是文件地址))
var test = window.location.pathname;
alert(test);
返回:/EditPosts.aspx6、window.location.search(设置或获取 href 属性中跟在问号后面的部分)var test = window.location.search;
alert(test);
返回:?opt=1PS:获得查询(参数)部分,除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。7、window.location.hash(设置或获取 href 属性中在井号“#”后面的分段)var test = window.location.hash;
alert(test);
返回:空字符(因为url中没有)var reg = new RegExp('(^|&)' + 'infoid' + '=([^&]*)(&|$)', 'i');var r = window.location.search.substr(1).match(reg);if (r != null) {var info_id = unescape(r[2]);}
1.在原来的窗体中直接跳转用
onClick="window.location.href='你所要跳转的页面';"2、在新窗体中打开页面用:
οnclick="window.open('你所要跳转的页面')"3、返回上一页 ( 本地测试无效,服务器上可用)
window.history.back(-1);
<a οnclick="javascript:history.back(1);" href="#">返回</a>
<a href="javascript:history.go(-1)">返回上一页</a>
<a href="<%=Request.ServerVariables("HTTP_REFERER")%>">返回上一页</a>4、一些用法
按钮式:
<INPUT name="pclog" type="button" value="php柚子的博客" onClick="location.href='连接地址'">
直接跳转式:
<script>window.location.href='连接地址';</script>
开新窗口:
<a href="javascript:" onClick="window.open('连接地址','','height=500,width=611,scrollbars=yes,status =yes')">123</a>自动打开<SCRIPT>
<!--
window.open('连接地址','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no') //写成一行
-->
</SCRIPT>
function htmlDecodeByRegExp(str) {var temp = "";if (str.length == 0) return "";temp = str.replace(/&/g, "&");temp = temp.replace(/</g, "<");temp = temp.replace(/>/g, ">");temp = temp.replace(/ /g, " ");temp = temp.replace(/'/g, "\'");temp = temp.replace(/"/g, "\"");return temp;}console.log(htmlDecodeByRegExp('C:\\\\Users\\\\amingMM\\\\Desktop\\\\yujing\\\\'))
var arg_ap = window.location.href.split('?')[1].split('&')var args_ = {}for(var i=0;i<arg_ap.length;i++){ //遍历数组,拿到json对象args_[arg_ap[i].split('=')[0]] = arg_ap[i].split('=')[1]}alert(args_.filename)
$(document).readywindow.onload = function(){ alert("welcome"); }
语句的作用是希望在页面加载完,自动执行定义js代码(function)。$(document).ready(function(){.... })这个函数是用来取代页面中的window.onload;$(document).ready()和onload的区别$(document).ready()和传统的方法<body οnlοad=”load()”> 相似,不同的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载。而$(document).ready()所要执行的代码是在DOM元素被加载完成的情况下执行,所以,使用document.ready()方法的执行速度比onload()的方法要快。Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作,jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行。
setTimeout
setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数后调用函数或计算表达式。语法格式可以是以下两种:setTimeout(要执行的代码, 等待的毫秒数)
setTimeout(JavaScript 函数, 等待的毫秒数)
数据类型
var obj={} 若要向obj添加属性或方法,请使用点表示法或括号表示法。例如:obj.name=“Alice”;或obj[“年龄”]=25;要从obj中删除属性或方法,
请使用delete运算符。
例如:delete obj.name;或删除obj[“年龄”];若要修改obj的属性或方法,
请使用点符号或括号符号为其指定一个新值。
例如:obj.name=“Bob”;或obj[“年龄”]=30;若要查询obj的属性或方法,请将点表示法或括号表示法与if语句或三元运算符一起使用。
例如:if(obj.name)
{console.log(obj.name);}或console.log(
obj[“age”]?obj[”age“]:“unknown”);
js 编码
Js逆向 ob混淆与加速乐
base64
/ 使用atob和btoa进行Base64编码和解码(仅支持ASCII字符串)
var str = "Hello world!";
var encoded = btoa(str); // SGVsbG8gd29ybGQh
var decoded = atob(encoded); // Hello world!// 使用base64-js库进行Base64编码和解码(支持中文等)
var base64js = require('base64-js');
var str = "你好!";
var bytes = base64js.toByteArray(str); // [228, 189, 160, 229, 165, 189, 239, 188, 129]
var encoded = base64js.fromByteArray(bytes); // 5L2g5aW977yB
var decoded = base64js.toByteString(encoded); // 你好!
data
data:,<文本数据>data:text/plain,<文本数据>data:text/html,<HTML代码>data:text/html;base64,<base64编码的HTML代码>data:text/css,<CSS代码>data:text/css;base64,<base64编码的CSS代码>data:text/javascript,<Javascript代码>data:text/javascript;base64,<base64编码的Javascript代码>data:image/gif;base64,base64编码的gif图片数据data:image/png;base64,base64编码的png图片数据data:image/jpeg;base64,base64编码的jpeg图片数据data:image/x-icon;base64,base64编码的icon图片数据
url
获取当前URL的参数,有几种可能的方法。例如:您可以使用window.location.search属性,
获取URL中问号(?)后面的部分,
也就是查询字符串(query string),然后使用URLSearchParams构造函数,
将其转换为一个可操作的对象const queryString = window.location.search; // 获取查询字符串
const urlParams = new URLSearchParams (queryString); // 将查询字符串转换为URLSearchParams对象您也可以直接使用window.location.href属性,获取完整的URL字符串,
并将其作为参数传递给URL构造函数,创建一个新的URL对象,
然后使用该对象的searchParams属性,获取一个URLSearchParams对象const url = new URL (window.location.href); // 获取完整的URL并创建一个新的URL对象
const urlParams = url.searchParams; // 获取该对象的searchParams属性
然后您就可以使用URLSearchParams对象提供的各种方法来操作和获取参数了。例如,您可以使用get方法来获取指定名称的参数值12:
const product = urlParams.get ('product'); // 获取名为product的参数值
console.log (product); // 打印参数值
在<body>标签中使用onload属性,指定要执行的js函数,例如:
<body onload="func1();func2();func3();">
</body>
在<script>标签中使用window.onload事件,指定要执行的js函数,例如:
<script type="text/javascript">
function myfun(){alert("this window.onload");
}
/*用window.onload调用myfun()*/
window.onload = myfun;//不要括号
</script>
使用jQuery的$(document).ready()方法,在DOM结构加载完毕后执行js代码,例如:
<script type="text/javascript">
$(document).ready(function(){//任何需要执行的js特效$("table tr:nth-child(even)").addClass("even");
});
</script>
使用定时器的setInterval()方法,设置定时器的时间为0,就可以加载定义的js代码,例如:
<script type="text/javascript">
function xxx(){js代码
}
setInterval(function(){xxx()方法
},0);
</script>
这些方法的区别在于执行的时机和次数。一般来说,$(document).ready()方法比window.onload方法更早执行,而定时器的方法可能会多次执行。
使用location.reload()方法,该方法会重新加载当前文档,类似于浏览器上的刷新按钮。例如:
// 刷新当前页面
location.reload()
使用location.replace()方法,该方法会用一个新文档替换当前文档,类似于客户端点击F5刷新页面。例如:
// 用当前页面的URL替换当前页面
location.replace(location.href)
使用location.assign()方法,该方法会加载一个新文档,类似于客户端点击一个链接。例如:
// 用当前页面的URL加载一个新文档
location.assign(location.href)
使用<meta>标签,在<head>区域中添加一个http-equiv属性为"refresh"的<meta>标签,指定一个content属性为刷新的时间间隔(单位为秒)。例如:
<!-- 每隔5秒刷新一次页面 -->
<head><meta http-equiv="refresh" content="5">
</head>
使用setTimeout()函数,设置一个定时器,在指定的时间后执行一个函数,该函数调用location.reload()或其他方法来刷新当前页面。例如:
// 5秒后刷新当前页面
setTimeout(function(){location.reload()
},5000)使用indexOf方法,判断一个字符串是否在数组中,例如:
var index = ["dasd","11111111"];
var key = "dasd";
if (index.indexOf(key) > -1) {console.log("数组中有这个键值名");
} else {console.log("数组中没有这个键值名");
}
使用typeof运算符,判断一个对象是否有定义,例如:
var index = {"dasd":"11111111"};
var key = "dasd";
if (typeof index[key] == "undefined") {console.log("对象中没有这个键值名");
} else {console.log("对象中有这个键值名");
}
使用in运算符,判断一个属性是否为对象的一个属性,例如:
var index = {"dasd":"11111111"};
var key = "dasd";
if (key in index) {console.log("对象中有这个键值名");
} else {console.log("对象中没有这个键值名");
}
使用hasOwnProperty方法,判断一个属性是否为对象的自身属性,而不是继承自原型链的,例如:
var index = {"dasd":"11111111"};
var key = "dasd";
if (index.hasOwnProperty(key)) {console.log("对象中有这个键值名");
} else {console.log("对象中没有这个键值名");
}// 定义一个函数,接受一个url字符串,返回一个包含参数名和值的数组
function getParams(url) {// 创建一个空数组,用于存放结果var params = [];// 判断url是否包含问号,如果有,说明有参数if (url.indexOf("?") > -1) {// 用问号分割url,取第二部分,即参数部分var query = url.split("?")[1];// 判断参数部分是否包含&,如果有,说明有多个参数if (query.indexOf("&") > -1) {// 用&分割参数部分,得到一个包含每个参数的数组var pairs = query.split("&");// 遍历每个参数for (var i = 0; i < pairs.length; i++) {// 用=分割每个参数,得到参数名和值var pair = pairs[i].split("=");// 把参数名和值作为一个子数组,添加到结果数组中params.push([pair[0], pair[1]]);}} else {// 如果没有&,说明只有一个参数// 用=分割参数部分,得到参数名和值var pair = query.split("=");// 把参数名和值作为一个子数组,添加到结果数组中params.push([pair[0], pair[