js代码

JS篇 同源策略、CORS、XSS、SessionCookie

女生的网名这么多〃 提交于 2020-01-21 03:27:07
同源策略: 如何引用: (iFrame指的是iframe DOM节点) 1. 引用iframe的window对象:iFrame.contentWindow 2. 引用iframe的document对象:iFrame.contentDocument,或者:iFrame.contentWindow.document 示例: 两个页面,前者页面中嵌入iframe,src指向后者: 1. test.nuomi.com/link1.vm 2. nuomi.com/link2.vm; 同源要求:Protocols, domains, and ports均相同 子域名不同的两个站:test.nuomi.com, nuomi.com,如果要通信, 都 必须设置为统一的域名:document.domain=nuomi.com; 即使其中一个已经是域名:nuomi.com,仍然需要 明确调用 :document.domain=nuomi.com; document.domain设值: 1. 只能是当前域名的suffix,否则报错:Uncaught SecurityError: Failed to set the 'domain' property on 'Document': 'test' is not a suffix of 'test.nuomi.com'. 2. 设值为com也会报错:'com'

如何让scss变量能够当做js变量来使用

我与影子孤独终老i 提交于 2020-01-21 02:30:15
如何让scss变量能够当做js变量来使用 当前我们使用scss变量有两个痛点: 需要手动导入 无法与js建立联系或者很难,后续不能在此基础上做一些骚操作 为了解决这两个问题,我们以创建js文件以json格式定义scss变量,然后通过配置webpack的解析规则来达到即能像普通scss一样使用,又能作为js变量使用的目的。 scss变量使用规范 变量创建 所有scss变量在 style/variables.scss.js 编写,格式要求为: 只允许使用小写字母 单词间以下划线"_"连接 命名应简洁易懂,以一个大的模块或高级别的单词开头_后面跟功能描述单词结尾 const variables = { 'header_height': '60px', 'header_background': `#ededed` } module.exports = variables; 注意:命名以下划线连接是为了在js文件中能够单个import, 使用中已经在webpack进行转换,必须按照此格式! 在scss变量中使用是正常的scss变量: $header-height 在js中使用是定义时的变量格式: import { header_height } from "@/style/variables.scss.js"; 变量使用 配置webpack中sass解析方式,一般来说项目构建者已经处理完毕

对浏览器内核(渲染进程)的理解

半世苍凉 提交于 2020-01-21 00:16:32
   浏览器的渲染进程(是Browser进程,浏览器插件进程,GPU进程,渲染进程中的一种进程)包含的一些主要常驻线程: GUI渲染线程 负责渲染浏览器界面,解析HTML,CSS,构建DOM树和RenderObject树,布局和绘制等。 当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行 注意, GUI渲染线程与JS引擎线程是互斥的 ,当JS引擎执行时GUI线程会被挂起(相当于被冻结了),GUI更新会被保存在一个队列中 等到JS引擎空闲时 立即被执行。 JS引擎线程 也称为JS内核,负责处理Javascript脚本程序。(例如V8引擎) JS引擎线程负责解析Javascript脚本,运行代码。 JS引擎一直等待着任务队列中任务的到来,然后加以处理,一个Tab页(renderer进程)中无论什么时候都只有一个JS线程在运行JS程序 同样注意, GUI渲染线程与JS引擎线程是互斥的 ,所以如果JS执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞。 事件触发线程 归属于浏览器而不是JS引擎,用来控制事件循环(可以理解,JS引擎自己都忙不过来,需要浏览器另开线程协助) 当JS引擎执行代码块如setTimeOut时(也可来自浏览器内核的其他线程,如鼠标点击、AJAX异步请求等),会将对应任务添加到事件线程中

[享学Jackson] 十三、jackson-annotation注解模块全解析及Jackson注解大全

感情迁移 提交于 2020-01-21 00:09:09
沈询:世界上解决一个计算机问题最简单的方法:“恰好”不需要解决它! –> 返回专栏总目录 <– 代码下载地址: https://github.com/f641385712/jackson-learning 目录 前言 正文 jackson-annotation里的注解 @JacksonAnnotation / @JacksonAnnotationsInside @JacksonInject @JsonProperty @JsonAlias @JsonPropertyOrder @Js 来源: CSDN 作者: YourBatman 链接: https://blog.csdn.net/f641385712/article/details/104045259

jquery-购物车js

狂风中的少年 提交于 2020-01-20 23:24:55
购物车示例js,为了方便参考,页面写的比较简单。示例如下图所示: html代码如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <style> .product{ width: 450px; } .product-price{ float: right; } .total{ float: right; } input[type='text']{ width: 50px; } </style> <title>购物车结算</title> </head> <body> <div> <!--第一个店铺--> <div>店铺1</div> <div class="store"> <!--第一个商品--> <div class="product"><span>商品A</span> <input class="product-check" type=

JS实现购物车

房东的猫 提交于 2020-01-20 22:24:24
JS实现购物车 1.实现思路: (1)在body中定义一个id="list",将所有商品存放在一个列表中,当进入购物车时如果有两个商品被勾选了,需要计算出总共的价钱和商品的件数以及最贵的商品价格; (2)在JS中获取元素属性,分别把它们存放在数组中; (3)点击加号进行商品添加,点击减号进行商品移除; (4)将上一步用两个点击函数来实现添加和移除; (5)在JS中用for循环来计算总价钱和比较最贵的商品; 2.代码思路 1.商品列表: <body> <ul id="list"> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 单价:<em>10元</em> 总计:<span>0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 单价:<em>5元</em> 总计:<span>0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" />

前端JS导出兼容IE

删除回忆录丶 提交于 2020-01-20 21:15:18
/* * jQuery table2excel - v1.1.1 * jQuery plugin to export an .xls file in browser from an HTML table * https://github.com/rainabba/jquery-table2excel * * Made by rainabba * Under MIT License */ /* * jQuery table2excel - v1.1.1 * jQuery plugin to export an .xls file in browser from an HTML table * https://github.com/rainabba/jquery-table2excel * * Made by rainabba * Under MIT License */ //table2excel.js ;(function ( $, window, document, undefined ) { var pluginName = "table2excel", defaults = { exclude: ".noExl", name: "Table2Excel", filename: "table2excel", fileext: ".xls", exclude_img: true,

js判断两个对象是是否相等

孤者浪人 提交于 2020-01-20 21:12:31
用Object.is 只能判断两个对象应用的地址是不是一样 如果两个对象的应用地址不一样。两个对象对应的键和值是一样的,应用地址不一样。那么这时候判断两个对象用Object.is就行不通了 思路 需要递归每个键看看对应的值是否一样。 键对应的值有两种可能 是基本数据类型 (Number,String,Boolean,Null, undefined,symbol) 引用数据类型(Object,Array) 如果是基本数据类型 判断他们的值是否相等就行 如果是复杂数据类型 需要依次遍历他们的键看看值是否一致,当然前提键的数量是要一致的。 代码 const deepEqual = (obj1, obj2) => { const keys1 = Object.keys(obj1); const keys2 = Object.keys(obj2); return keys1.length === keys2.length ? keys1.every(key => { if (typeof (obj1[key]) === 'object') { return deepEqual(obj1[key], obj2[key]); } else { return obj1[key] === obj2[key]; } }) : false; } 例如下面两个对象 const obj1 = { name:

js addEventListener调用传参函数

谁说我不能喝 提交于 2020-01-20 20:50:12
先看这段代码 1 function abc(key){ 2 console.log(key); 3 } 4 for (let i=0;i<oInput.length;i ){ 5 oInput[i].addEventListener('focus' ,abc(i)); 6 } 会发现focus这个操作还未执行,i的值已被依次打印出来。 如何传入传参函数而不被立即执行呢,方法一:给addEventListener绑定一个匿名函数。 element.addEventListener('mouseover', function (e,some){ fn(e,some); }); tip:绑定匿名函数的话不能使用removeEventListener移除事件。 方法二:bind方法。bind和call/apply相似,通常用于改变函数的this的指向,不过和后二者不同,bind中不额外加()操作符,就不会立即函数。对于这个特性,也正是我们在这里所需要的。 function abc(key){ console.log(key); } for (let i=0;i<oInput.length;i ){ oInput[i].addEventListener( 'focus',abc.bind( this ,i)); } tip:bind是ES5中的方法,不兼容ie8

博客园文章版权声明(js自动生成)

谁都会走 提交于 2020-01-20 19:59:56
博客园文章版权声明(js自动生成) 一.代码 我比较直接,直接上代码,把下面html放右侧,首页,页脚都可以 <style> #MySignature { display: block; background-color: #c6ced4; border-radius: 7px; box-shadow: 1px 1px 1px #6B6B6B; padding: 10px; line-height: 1.5; text-shadow: 1px 1px 1px #FFF; font-size: 16px; } #MySignature a { margin: 0; padding: 0; display: contents; } </style> <script> var MySignature = document.querySelector('#MySignature') //会自动找你的url,如果你自己自定义了自定义匹配他的位置 var postTitleUrl = document.querySelector('.postTitle a').getAttribute('href').replace(/\s*/g, "") //自动找你的名字,如果你自定义也是自己找 var authorNanme = document.querySelector('#profile