为您找到搜索结果:6311个
document.getElementsByClassName在ie8及其以下浏览器的兼容性问题
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。 代码如下:原来方法: document.getElementsByClassName('tabs_div');这里的调用方法为:getClassNames('tabs_div' , 'div');[javascript] viewplaincopy var divs = getClassNames('tabs_div' , 'div'); function getClassNames(classStr,tagName){ if (document.getElementsByClassName) ...
aria-label及aria-labelledby应用//////////[信息无障碍产品联盟]
http://accessibilityunion.org/archives/808 发表于 2013年12月12日 由 sisiyuanaria-label属性正常情况下,会在表单里给input组件指定对应的label,当用户tab到输入框时,读屏软件就会读出相应label里的文本。如:<labelfor=”username”>用户名:</label><inputtype=”text”id=”username”/>当没有给输入框设计对应的label文本的位置时,aria-label属性为组件指定内置的文本标签。它不在视觉上呈现。如:<inputtype=”text” aria-label=”用户名”/>此时,当焦点落到该输入框时,读屏软件就会读出aria-label里的内容,即“用户名”。经测试,aria-label只有加在可被tab到的元素上,...
原生js添加class
function hasClass(obj, cls) { return obj.className.match(new RegExp('(\s|^)' + cls + '(\s|$)')); } function addClass(obj, cls) { if (!this.hasClass(obj, cls)) obj.className += " " + cls; } function removeClass(obj, cls) { &n...
mysql中json_replace函数的使用?通过json_replace对json对象的值进行替换
需求描述: 在看mysql中关于json的内容,通过json_replace函数可以实现对json值的替换, 在此记录下.操作过程:1.查看带有json数据类型的表mysql>select*fromtab_json;+----+---------------------------------------------------------------------------------------+|id|data|+----+---------------------------------------------------------------------------------------+|1|{"age":"33","tel":13249872314,"passcode":"654567"}||2|{"age":"33","tel":189776542,"name":"David","olds":"12","address":"Hangzhou"}|+----+--------------------------------------------------...
angular ng-bind-html $sce.trustAsHtml
使用ng-bind-html和$sce.trustAsHtml显示有html符号的内容 angularjs的强大之处之一在于它的双向数据绑定的功能,我们通常会使用data-ng-bind或者data-ng-model来绑定数据。但是在项目中很多数据都带有各种各样的html标签,而angularjs绑定的数据都会默认以文本的形式输出,并不会去识别html标签,这样做主要是为了防止html标签中的注入攻击,提高了安全性。那么如何显示这些html标签呢?主要有两种方法:1.过滤器<bodyng-app="myApp"ng-controller="myCtl"><divng-bind-html="htmlContent|to_trusted"></div></body><script>varapp=angular.module('myApp',[]);app.controller('myCtl',['$scope',function($scope){$scope.htmlContent='<h1>wednesda...
angualarjs $location服务
$location服务angular使用内置的$location服务来监听、操作url,包括以下功能: -获取、监听、改变地址栏的URL; -与URL实现双向数据绑定(地址栏变动、前进后退或者点击页面的链接都会触发); -将URL对象封装成了一套方法(protocol,host,port,path,search,hash)相对于BOM原生的window.location,使用$location更利于测试用例的编写(通过$location来注入假数据),提供的接口也更友好(官方一直强调是jQuery-stylegettersandsetters,我的理解就是支持链式写法),与URL实现了双向绑定,内部集成了HTML5的HistoryAPI,所以建议使用$location服务。$location方法 $location服务为只读的URL部分提供getter方法(包括absurl,protocol,host,port),也提供getter和setter方法(包括url,path,search,hash)。以一个完整的路径为例:http://localh...
AngularJS测试二 jasmine测试路由 控制器 过滤器 事件 服务
测试应用1.测试路由我们需要检测路由是否在运作,是否找到了,或者是404了。我们要确认路由事件触发了,预期的模板是否真的加载了。既然路由会改变页面的地址(URL)和页面内容,我们需要检测路由是否被加载了,页面是否找到了,在这中间发生了什么。一段简单的路由代码:angular.module('myApp',['ngRoute']).config(function($routeProvider){$routeProvider.when('/',{templateUrl:'views/main.html',controller:'HomeController'}).when('/login',{templateUrl:'views/login.html',controller:'LoginController'}).otherwise({redirectTo'/'});})测试路由我们需要做以下几件事:(1)注入$route、$location和$rootScope服务。(2)建立一个模拟的后端来处理XHR,获取模板代码。(3)设置一个地址,运行一个$digest生命周期Step1:在测试中...
angularJS测试一 Karma Jasmine Mock
AngularJS测试一测试工具1.NodeJS领域:Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。Java领域:JUnit做单元测试,Maven自动化单元测试,统一项目管理,构建项目原型模板,包依赖管理。Nodejs让组合变得更丰富,却又在加重我们的学习门槛。唉......2.KarmaKarma是一个测试工具,它从头开始构建,免去了设置测试方面的负担,这样我们就可以将主要精力放在构建核心应用逻辑上。Karma产生一个浏览器实例(或者多个不同的浏览器实例),针对不同的浏览器实例运行测试,检测在不同浏览器环境下测试是否通过。Karma与浏览器通过socket.io来联系,这能让Karma保持持续通信。因此Karma提供了关于哪些测试正在运行的实时反馈,提供一份适合人类阅读的输出,告诉我们哪些测试通过、哪些失败或者超时。Karma测试运行器同时支持单元测试和端到端测试。3.Karma安装如果你已经安装了NodeJS和npm...
angularJS constant和value
angularJS可以通过constant(name,value)和value(name,value)对于创建服务也是很重要的。相同点是:都可以接受两个参数,name和value。区别:1.constant(name,value)可以将一个已经存在的变量值注册为服务,并将其注入到应用的其他部分中。其中,name为注册的常量的名字,value为注册的常量的值或对象。举例:(1)value为值时:angular.module('myApp').constant('apiKey','123123123').controller('MyController',function($scope,apiKey){//可以像上面一样用apiKey作为常量//用123123123作为字符串的值$scope.apiKey=apiKey;});(2)value为对象时:angular.module('myApp').constant('apiKey',{name:[],age:[],date:[]}).factory('myFactory',function(apiKey,$scope){apiKey.na...
AngularJS $on $broadcast $emit
如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信。 2.通过作用域中的事件处理通信。但是这种方法有一些限制;例如,你并不能广泛的将事件传播到所有监控的作用域中。你必须选择是否与父级作用域或者子作用域通信。 $on、$emit和$broadcast使得event、data在controller之间的传递变的简单。$broadcast、$emit事件必须依靠其他事件(ng-click等)进行触发,而不能单纯写一个这个。。$on倒是可以直接写,因为它属于监听和接收数据的。$emit只能向parentcontroller传递event与data$broadcast只能向childcontroller传递event与data$on用于接收event与data 举例:html代码<divng-controller="ParentCtrl"> &n...
angular 服务 service factory provider constant value
angular服务服务是对公共代码的抽象,由于依赖注入的要求,服务都是单例的,这样我们才能到处注入它们,而不用去管理它们的生命周期。 angular的服务有以下几种类型: 常量(Constant): 用于声明不会被修改的值。 变量(Value): 用于声明会被修改的值。 服务(Service): 这个名称跟服务这个大概念同名,就种行为就像是给自己孩子取名为"孩子"。只需要创建这个服务,然后等angular把它new出来,保存这个服务,然后就可以到处注入了。 工厂(Factory): 它跟上面的Service不一样,它不会被new出来。angular会调用这个函数,获得返回值,然后保存这个返回值,供它到处调用。 供应商(Provider): 在整个服务启动之前,进行一些模块化的配置。 看一张图说明provider,服务等关系:除了Constant之外,所有这些类型的服务,背后都是通过Provider实现的。最明显的一个证明就是,当你使用未定义的服务时,angular给你...
Spring restTemplate
什么是RestTemplateRestTemplate是Spring提供的用于访问Rest服务的客户端,提供了多种便捷访问远程HTTP服务的方法,能够大大提高客户端的编写效率。 项目中注入RestTemplate首先在项目中添加依赖:<!--Jackson对自动解析JSON和XML格式的支持--><dependency><groupId>com.fasterxml.jackson.jaxrs</groupId><artifactId>jackson-jaxrs-json-provider</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId></dependency><!--HttpClient-->...
$anchorScroll angular锚点服务
angular锚点服务 $anchorScroll 普通的html页面中,我们会通过在url后面添加#elementId的方式,将页面显示定位到某个元素上,也就是所谓的锚点。 但是在angular应用的页面上,页面路由的写法是#route/route,锚点会被当做一个页面路由解析过去,达不到定位的目的。angular提供了$anchorScroll用来提供锚点的功能。用法: $anchorScroll([hash])当被调用的时候,页面会滚动到与元素相关联的指定的hash处,或者滚动到当前$location.hsh()处。<divng-controller="ScrollController"><ang-click="gotoBottom()">Gotobottom</a><aid="bottom"></a>You'reatthebottom!</div>angular.module('anchorScrollExample',[]).controller('Sc...
angularjs 常用方法
一angular的copy和extend1.angular.extend() angular.extend():依次将第二个参数及后续的参数的第一层属性(不管是简单的属性还是对象)拷贝,赋给第一个参数的第一层属性。也就是说,如果是对象,那么引用的是同一个对象,并返回第一个参数对象。 用法1:angular.extend(b,a);将a拷贝给b 将a拷贝给b 看一个具体的例子:vara={name:'bijian',address:'shenzhen',family:{num:6,amount:'80W'}};varb={};varr=angular.extend(b,a);console.log('a:'+JSON.stringify(a));console.log('b:'+JSON.stringify(b));console.log('r:'+JSON.stringify(r));b.address='hanzhou';b.family.amount='180W';console.log('a:'+JSON.stringify(a));con...
angular 缓存模板 ng-template $templateCache
由于浏览器加载html模板是异步加载的,如果加载大量的模板会拖慢网站的速度,这里有一个技巧,就是先缓存模板。 使用angular缓存模板主要有三种方法: 方法一:通过script标签引入<scripttype="text/ng-template"id="hello.html"><h4>hello</h4><p>这是script标签获取模板文件的方式</p><ahref="http://www.baidu.com">标签启用templateCache方式</a></script>注意,这里的id只是指十几使用模板时的一个引用,而不是一个url,模板的实际内容在script标签里。ng-template指明这是angular模板。 当然,模板的实际内容我们也可以使用themeleaf的标签来引用一些html页面,如th:include和th:replace。<scripttype="text/ng-template"id="hello.html"><...