js

js:关于window.onload

好久不见. 提交于 2020-02-29 08:05:45
下图来自: http://www.cnblogs.com/wsun/p/3916487.html 。 示例1 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1> heading 1</h1> <h1> heading 2</h1> <h1> heading 3</h1> <script> window.onload = function() { alert("text1");}; </script> <script> window.onload = function() { alert("text2");}; </script> </body> </html> 或者: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1> heading 1</h1> <h1> heading 2</h1> <h1> heading 3</h1> <script> window.onload = function() { alert("text1");}; window.onload =

JS定时关闭窗口

梦想与她 提交于 2020-02-29 07:47:35
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type ="text/css" > .main{ background-color:Silver; width :200px; height :100px; margin-left:40%; margin-top :200px; text-align :center;} </style> <script src="js/ui/jquery-1.7.1.min.js" type="text/javascript"></script> <script language="javascript" type="text/javascript"> var n = 3; function showTime() { n--; $('#divMain').html(n + ' 秒后关闭窗口'); if (n == 0) window.close(); else setTimeout('showTime()', 1000); } </script> </head> <body onload ="showTime()"> <form id="form1" runat="server"> <div id ="divMain"

js中多行字符串拼接

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-29 02:52:32
前言 我们会经常遇到这样的场景,需要拼接多行字符串,在字符串中动态插入一些数据以达到业务的需求。但是js中并没有标准的多行编辑的函数,于是聪明的程序员们便脑洞大开,书写出许多有趣的方法。 1 2 3 4 5 < div class= "links"> < a href= "http://qianlongo.github.io/">谦龙的博客 </ a> < a href= "http://aximario.github.io/">阿希的博客 </ a> < a href= "http://lingyu.wang/">天镶的博客 </ a> </ div> 对于上图的dom结构如果要在js中拼接,你会用什么组织方式呢? 1. 常规方式 1 var str = '<div class="links"><a href="http://qianlongo.github.io/">谦龙的博客</a><a href="http://aximario.github.io/">阿希的博客</a><a href="http://lingyu.wang/">天镶的博客</a></div>' 看到上面那一坨的代码,不知道您的心情是怎样的,反正我是完全没有心情看下去了,可读性太差了,于是乎为了写出可读性强的代码我们开始了下面的征程 2. 字符串相加形式 1 2 3 4 5 var str = '<div

JS-创建多行字符串

对着背影说爱祢 提交于 2020-02-29 02:50:52
很多时候我们要创建很长的字符串,如比如动态添加HTML的时候。PHP中我们可以用 nowdoc(单引号)定界符字符串:不识别变量,不识别转义字符(除了\'和\\,分别代表单引号和反斜线) heredoc(双引号)定界符字符串:识别变量,识别转义字符 来创建多行字符串。但JS中要怎么做呢? 一:直接用加号连接 var ts = '<!DOCTYPE html>'+ '<html lang="en">'+ '<head>'+ ' <meta charset="UTF-8">'+ ' <title>Document</title>'+ '</head>'+ '<body>'+ ' hello world'+ '</body>'+ '</html>' 二、使用反斜线(续行符) var ts = '<!DOCTYPE html>\ <html lang="en">\ <head>\ <meta charset="UTF-8">\ <title>Document</title>\ </head>\ <body>\ hello world\ </body>\ </html>' 三、字符串数组join var ts = ['<!DOCTYPE html>', '<html lang="en">', '<head>', ' <meta charset="UTF-8">', ' <title

谈谈js中的闭包

只谈情不闲聊 提交于 2020-02-29 01:31:50
前言: 我们这次来谈谈js中的闭包。 首先:闭包是个什么东西呢? 简单来说: 闭包 就是能访问其他函数内部变量的函数,也可以说被 嵌套的函数就叫做闭包函数 举例: function add(){ var count =0 ; function fun(){ return count++ ; } return fun; } var f1 =add(); //f1 ==fun :把局部的变成全局的,延长生命周期,每次通过f1来调用上面的方法后,这个方法在内存中一直存在着,count也存在着 console.log(f1()); //这里结果就是 1 ,它的运行思路就是, f1() 的时候,调用我们 add() 函数里面 return 的函数 fun() ,然后又调用 count++ ,所以这里最终结果为 1 再来:说一说使用闭包的优点: 1> 正常函数执行完毕后,里面声明的局部变量被垃圾回收处理掉,但是闭包1可以让作用于里的变量,在函数执行完成后依旧保持没有被垃圾回收机制处理掉 2> 可以读取函数内部的变量,让这些变量的值始终保持在内存中 3> 增加块级作用域 最后:说一说使用闭包应该注意的事项: 使用闭包的注意事项: * 由于闭包会使得函数中的变量都被保存在内存中, 内存消耗很大,所以不能滥用闭包 ,否则会造成网页性能问题,在 IE 中可能导致内存泄漏。 *

IDEA中向JSP页面添加css和js引用路径的问题

点点圈 提交于 2020-02-29 00:52:08
转载至: https://blog.csdn.net/u014650759/article/details/102589567 现在有一个项目,用到了第三方的js和css插件,需要引用到我们的jsp页面,项目结构大致如下 如果直接采用下面的方式,将无法引用成功,导致页面效果无法实现。 <link title="blue" type="text/css" rel="alternate stylesheet" href="/css/common/weui.min.css"> <script type="text/javascript" src="/js/common/jquery-3.2.1.min.js"></script> 这里 原因是/为根路径,而根路径默认从WEB-INF这里开始,所以运营后将无法找到插件资源。那么更改路径,通过../呢 <link title="blue" type="text/css" rel="alternate stylesheet" href="/../css/common/weui.min.css"> <script type="text/javascript" src="/../js/common/jquery-3.2.1.min.js"></script> 上面的方式,期望通过/..追溯到webapp路径后,再向下查找文件路径,实际上也是不可行的

强大的矢量图形库:Raphael JS 中文帮助文档及教程

主宰稳场 提交于 2020-02-29 00:27:17
Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库。它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出各种复杂的柱状图、饼图、曲线图等各种图表,还可以绘制任意形状的图形,可以进行图表或图像的裁剪和旋转等复杂操作。 Raphaël 是跨浏览器的矢量图形库,目前支持的浏览器包括: Firefox 3.0+,Safari 3.0+,Chrome 5.0+,Opera 9.5+ 以及 Internet Explorer 6.0+ 用法: 首先,在页面中引入 raphael.js 文件,然后就可以绘制任意的矢量图形了: // 在坐标(10,50)创建宽320,高200的画布 varpaper = Raphael(10, 50, 320, 200); // 在坐标(x = 50, y = 40)绘制半径为 10 的圆 varcircle = paper.circle(50, 40, 10); // 给绘制的圆圈填充红色 (#f00) circle.attr("fill","#f00"); // 设置画笔(stroke)的颜色为白色 circle.attr("stroke","#fff"); Raphaël Playground Reflection Image rotation Text

delete分析 引用于 http://www.cnblogs.com/yuzhongwusan/archive/2012/06/14/2549879.html

点点圈 提交于 2020-02-28 23:47:18
最近重新温习JS,对delete操作符一直处于一知半解的状态,偶然发现一篇文章,对此作了非常细致深入的解释,看完有茅塞顿开的感觉,不敢独享,大致翻译如下。 原文地址: http://perfectionkills.com/understanding-delete/ P.S. 作者是PrototypeJS的开发组成员之一 ========分割线======== 在开始之前,先让我们看一段代码 Js代码 >>> var sum = function(a, b) {return a + b;} >>> var add = sum; >>> delete sum true >>> typeof sum; "undefined" 这段代码是Firebug控制台里的实际结果,初看这段代码,你觉得有什么问题?但我要说的是,删除sum应该是失败的,同时typeof sum的结果不应该是undefined,因为在Javascript里以这种方式声明的变量是无法被删除的。 那么问题出在哪里?为了回答这个问题,我们需要理解delete操作符在各种情况下的实现细节,然后再回过头来看Firebug的这个看似“诡异”的输出。 P.S 没有特殊声明的情况下,下文中所提到的Javascript都指的是ECMAScript规范。 1. 理论 delete操作符通常用来删除对象的属性: Js代码 var o = {

记录一次使用jiaThis社会化分享组件遇到的坑!!

自古美人都是妖i 提交于 2020-02-28 23:46:15
在项目中用过几次jiaThis了,使用的是自定义的模式,前面几次都没有发现什么问题,但是这次却出现一个很奇葩的问题。 问题背景:使用jiaThis自定义分享,在本地测试时,所有分享均正常,但是放到linux服务器上后,新浪微博和微信分享仍正常,但是QQ空间分享却出现了问题,打开分享到QQ空间的链接,发现无法加载接口内容。 被分享链接:http://192.168.141.22/#/index/assess/publicQuestion?engId=vdt_zonghezheng & type=DJK_STJK 分享后显示的链接:http://192.168.141.22/#/index/assess/publicQuestion?engId=jianzhouyanzice & type=DJK_STJK 最终在浏览器中打开的分享链接:http://192.168.141.22/#/index/assess/publicQuestion?engId=jianzhouyanzice &amp%3B type=DJK_STJK 问题分析:经过上面的对比就能发现,url在分享到QQ空间时,url中的 & 符号被转义成了‘ & ’,最终在浏览器中打开时,浏览器又将‘ & ’中的‘ ; ’编码成了‘ %3B ’,这就导致了页面代码无法获取到原本在‘ & ’后面的参数

JS基础概念整理与简单练习-Part1

这一生的挚爱 提交于 2020-02-28 22:34:56
(写在前面:想着本身也会整理,不如把整理的内容放到博客里,能帮助到检索这篇博客的人一点点也好。没想到之前写的一点内容也有人浏览,挺惊讶的,这几天多整理一些之前写的本地笔记上传吧。) if 练习1 小结: ① else if条件累赘了; ② 需要判断值是否合法// 空字符转换为数值是0; ③ prompt( )函数的返回值是String类型的; if 练习2 switch练习 小结: ① 这个例子不适合用switch写(更适合if),不过未注释部分是标准写法。 while练习1 题目较简单,未附代码。小结: ① do-while语句是 后测试循环语句;while语句是 前测试循环语句。 while练习2    本题修改自if练习1,在输入分数部分添加了一个循环,错误便重输。 小结: ① 此题的score全程都是字符串,只有在比较时临时转换为数值进行比较;不能转为数值的会被转为NaN,比较结果是false。 ② 第一个if需要全员true才能通过,score.length必须得有(保证空字符不会变成0)。 ③ 因为不能转为数值的在第一个if处就false陷入循环了,所以不需要下面的isNaN判断。 ④ 因为 if练习1 中防止 'a'与数值比较为false,跳到 正确格式值 的分支,所以需要做判断。(第一步永远是判断异常值!) ⑤ 养成好习惯,break也加分号。 for练习1 小结: