var

js页面文字选中后分享实现

眉间皱痕 提交于 2020-03-23 12:43:45
var $sinaMiniBlogShare = function(eleShare, eleContainer) { var eleTitle = document.getElementsByTagName("title")[0]; eleContainer = eleContainer || document; var funGetSelectTxt = function() { var txt = ""; if(document.selection) { txt = document.selection.createRange().text; // IE } else { txt = document.getSelection(); } return txt.toString(); }; eleContainer.onmouseup = function(e) { e = e || window.event; var txt = funGetSelectTxt(), sh = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; var left = (e.clientX - 40 < 0) ? e.clientX + 20 : e.clientX -

前端开发面试题

▼魔方 西西 提交于 2020-03-23 12:06:01
1、 什么标签语义化 HTML中包含的标签有那些 行内标签和快级标签的区别是什么 行内标签和快级标签有那些(个举例8个) 行内标签和快级标签如何相互转换 display有那些常用值(不少于8个) 2、 如何隐藏一个div(不少于6种) 3、 console.log( typeof typeof typeof [1,2,3] ); 4、 var num1 = 12; var num2 = num1; num2 ++; console.log(num1); var obj1 = {name:"ntsc",age:22}; var obj2 = obj1; obj2.age = 27; console.log(obj1.age); 5、 var obj1 = {name:"ntsc",age:19}; var obj2 = obj1; var obj3 = obj2; obj3.age = 24; obj2 = {name:"李四",age:20}; console.log(obj1.age); console.log(obj2.age); console.log(obj3.age); 6、 (function() { var a = b = 5; })(); console.log(b); 7、给String对象定义一个repeatify方法。该方法接收一个整数参数

JavaScript与DOM(上)

让人想犯罪 __ 提交于 2020-03-23 10:06:49
本来像自己写一篇的。。。结果看到了Tom uncle的这篇。。总结的确实很赞,其他文章也非常好推荐 转载自:http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 文档对象模型Document Object Model DOM(Document Object Model,文档对象模型)是一个通过和JavaScript进行内容交互的API。Javascript和DOM一般经常作为一个整体,因为Javascript通常都是用来进行DOM操作和交互的。 主要内容来自:http://net.tutsplus.com/tutorials/javascript-ajax/javascript-and-the-dom-series-lesson-1/ 关于DOM,有些知识需要注意: 1. window对象作为全局对象,也就是说你可以通过window来访问全局对象。 属性在对象下面以变量的形式存放,在页面上创建的所有全局对象都会变成window对象的属性。 方法在对象下面以函数的形式存放,因为左右的函数都存放在window对象下面,所以他们也可以称为方法。 2. DOM为web文档创建带有层级的结果,这些层级是通过node节点组成,这里有几种DOM node类型,最重要的是Element, Text, Document。

js获取节点 dom操作

十年热恋 提交于 2020-03-23 09:35:57
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 原生的JS获取ID为test的元素下的子元素。可以用: 比如: <div id="dom"> <div></div> <div></div> <div></div> </div> var a = docuemnt.getElementById("dom").getElementsByTagName_r("div"); 这样是没有问题的 此时a.length=3; 但是我们现在换一种方法获取就是我上章提到的var b = document.getElementByIdx_x("dom").childNodes;如果 这样alert(b.length)IE浏览器上没问题还是3,但是在FF浏览器上会提示是4,这就是因为FF把换行也当做一个元素了。 所以我们必须处理一下才能用JS的那些属性。处理思想很简单就是遍历一下这些元素。把元素类型为空格而且是文本都删除。处理函数是这样的 function del_space(elem){ var elem_child = elem.childNodes;//得到参数元素的所有子元素 for(var i=0;i<elem_child.length;i++){ /

C# TimeSpan 时间计算

不问归期 提交于 2020-03-23 08:41:47
原文: C# TimeSpan 时间计算 本文告诉大家简单的方法进行时间计算。 实际上使用 TimeSpan 可以做到让代码比较好懂,而代码很简单。 例如我使用下面的代码表示 5 秒 const int needCount = 5 * 1000; 因为后面使用的是延迟,延迟的代码很简单 Task.Delay(needCount) 这时传入的是一个毫秒,但是很多小伙伴问,为什么是 5*1000 表示 5秒,他不知道我使用的是毫秒。 所以建议使用 TimeSpan 来写时间,下面的需求是在判断在开机 20 秒内的延迟,如果在开机 20 秒内启动应用,那么就需要延迟时间 var needTime = TimeSpan.FromSeconds(20); //开机20秒左右 USB 已经加载完成 计算时间的减法或加法可以使用重载 + 和 - ,请看下面代码,就是把两个 TimeSpan 相减,返回的值也是一个 TimeSpan ,下面的代码是编译不通过的。 var chikesereHearpawwirboo = needTime - maxDelay; Console.WriteLine(chikesereHearpawwirboo); 如果需要从毫秒转 TimeSpan ,请看下面代码 // 毫秒转 TimeSpan var milliseconds = 5 * 1000; var

hbuilder mui调用系统裁剪图片、头像裁剪-Android

二次信任 提交于 2020-03-23 02:41:55
head.addEventListener('tap', function() { var IMAGE_UNSPECIFIED = "image/*"; //相册显示的文件类型 var PHOTOZOOM = 2; // 获取完图片返回key var PHOTOLAT = 1; // 剪裁完毕后返回key var main = plus.android.runtimeMainActivity(); //h5+获取应用主Activity实例对象 var Intent = plus.android.importClass("android.content.Intent"); //导入java类intent对象 以下importClass都是使用安卓原生类 var MediaStore = plus.android.importClass("android.provider.MediaStore"); var File = plus.android.importClass("java.io.File"); var Uri = plus.android.importClass("android.net.Uri"); var intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore

冒泡排序和选择排序

断了今生、忘了曾经 提交于 2020-03-23 01:25:28
冒泡排序和选择排序 作用和原理 将数组中的数值,按照执行的顺序,从小到大排序或者从大到小排序,本文中均为从小到大排序。 冒泡排序 原理: 相邻的两个单位,比较存储的数据,如果第一个单元的数据较大,就将两个相邻单元,交换存储数据 核心: 交换存储的数据 两个相邻的单元,比较数据大小,第一个单元数值较大,就交换两个单元存储的数据 var num=[5,6,7,1,8,9,3,4,2]; //这是用的最基础的for循环嵌套的语法写的,主要是排序的思路 //第一个for循环一次循环确定一个最大的数 for(var n=0;n<=num.length-1-1;n++){ //里面的for循环是依次将两个相邻的数进行比较,直到比到前面已经比过的n个数为止(因为后面已经比过的数都已经确定是比前面的数大了,所以不用再比了,这样可以提升程序的执行效率) for(var m=0;m<=num.length-1-1-n;m++){ //if语句将两个相邻的数从小到大排好 if(num[m]>num[m+1]){ var x=0; x=num[m]; num[m]=num[m+1]; num[m+1]=x; } } } document.write(num); 选择排序 核心 : 找到最小值的索引,与起始位置交换数值,先找索引 在交换数值 代码: //选择排序跟冒泡排序的程序相近,但有本质的区别

xl2tpd vpn Unable to open /var/run/xl2tpd/l2tp-control 解决

不问归期 提交于 2020-03-22 23:10:37
3 月,跳不动了?>>> xl2tpd vpn 启动后无法连接 关闭 xl2tpd 服务 systemctl stop xl2tpd 直接以 调试方式启动 xl2tpd -D 看到报错: Unable to open /var/run/xl2tpd/l2tp-control 查看: https://github.com/QSCTech/zjunet/issues/16 尝试建立xl2tpd 在 /var/run/ 下 ,再次启动调试模式。 vpn 连接正常。问题得以解决。遂以 服务模式启动,vpn连接一切正常。 来源: oschina 链接: https://my.oschina.net/macleo/blog/3208487

【JavaScript】JS总结 – 乱

会有一股神秘感。 提交于 2020-03-22 22:50:31
一、 重要:js中的function函数声明、函数表达式 // 函数声明 // Ex: 会在代码执行之前提前加载到作用域中,即js解析器会优先读取,确保在所有代码执行之前声明已经被解析;所以可以在定义之前调用。 function test(){ document.write("test() invoke!" + "<br>"); } // 函数表达式 // Ex: 在代码执行到那一行的时候才会有定义;定义之后才能调用。 var t2 = function(){ document.write("t2() invoke!" + "<br>"); } //函数声明:会在代码执行之前提前加载到作用域中 test("1"+name); // test() invoke!14 var name =1; function test(name){ document.write("test() invoke!" + name + "<br>"); } name=2; test("2"+name); //test() invoke!22 //函数表达式:在代码执行到那一行的时候才会有定义 var t2; //t2(); // t2 is not a function test("21"+name); //test() invoke!212 name =3; test("22"+name); /

快速求解两个时间之间的天数

淺唱寂寞╮ 提交于 2020-03-22 21:02:44
在此,给大家推荐一款使用频率非常高的时间类库--moment.js 详见官网: http://momentjs.com/ 已知一个起始时间一个结束时间,求这个时间段内的所有天数。 var a = moment([2016, 6, 12]); var b = moment([2016, 6, 22]); a.from(b); 当然啦,前提是需要引入moment.js的,可在官网下载。 方法二: var num = new Date("2016-06-22").getTime() - new Date("2016-06-12").getTime(); var days = num/1000/60/60/24; 如果想要获取这段时间内具体的日期,    var date = '2015-05-12--2016-06-12'.split('--'); function getDate(start,end){ start = new Date(start).getTime(); end = new Date(end).getTime(); var date = []; for(;start <= end;start += 86400000){ var tmp = new Date(start); date.push(tmp.getFullYear()+'-'+(tmp.getMonth()