- 杂记备忘录
疯子乱语
杂记
复活xx用Charles拦截xx的认证请求,并修改响应(code码超过20位才能拦截到)。#请求http://api.yuhengye.com/activecode/bind?code=88888888888888888888888&device_id=xxxx&device_name=xxxx&uid=xxxxx&name=xxx#响应{"code":0,"data":{"code":"xxxx
- 一、Linux C/C++ 网路socket基础代码
1776323096
LinuxC/C++网络IOlinuxc语言c++服务器网络
文章目录需要用到的函数1、intsocket(int__domain,int__type,int__protocol);2、intbind(int__fd,__CONST_SOCKADDR_ARG__addr,socklen_t__len);3、intlisten(int__fd,int__n);4、intaccept(int__fd,__SOCKADDR_ARG__addr,socklen_t*
- 【Android】cmd命令
aaajj
Androidandroid
Android中cmd命令可以用来向binder服务发送命令,来进行相关调试,其实现原理是调用binder服务的command接口frameworks/native/cmds/cmd/cmd.cpp209Vectorargs;210for(inti=2;iservice=sm->checkService(cmd);215if(service==NULL){216ALOGW("Can'tfindse
- 解决在Nuxt3+naiveUi中打包出现vueuc导入方式问题报错
张苹果博客
前端
在nuxt3+naiveui项目中打包出现vueuc导入方式问题报错,导致页面访问500。错误描述[nuxt][requesterror][unhandled][500]Namedexport'VBinder'notfound.Therequestedmodule'vueuc'isaCommonJSmodule,whichmaynotsupportallmodule.exportsasnamede
- WPF学习笔记(8)数据绑定方向与INotifyPropertyChanged
三千道应用题
WPF学习笔记wpf
数据绑定方向与INotifyPropertyChanged一、数据绑定方向1.OneWayToSource2.OneWay3.TwoWay二、INotifyPropertyChanged总结一、数据绑定方向Binding类的Mode属性可以指定数据绑定的方向:官方文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.data.
- 深入解析微信协议逆向:基于Go语言的手机号绑定功能实现
梦玄海
微信golangjava
引言在即时通讯系统开发领域,微信协议的逆向工程一直是一个充满挑战的技术方向。本文将基于一段真实的Go语言实现代码,深入剖析微信客户端绑定手机号功能的核心实现机制,解密其通信协议、数据序列化及安全传输等关键技术细节。一、功能概述与模块架构该代码片段实现了微信客户端的手机号绑定功能(BindOpMobile),主要包含以下技术模块:用户凭证管理:通过comm.GetLoginata获取会话密钥、设备信
- Android 13 接入 MediaSession 指南
Code_onepage
android
Android13接入MediaSession指南一、MediaSession概述传统音乐播放应用架构需优先保障音频后台播放,传统方案依赖独立Service异步加载资源并处理播放控制,通过Binder或广播实现界面通信。扩展通知栏控制需额外构建广播接收器,锁屏交互则依赖AIDL等跨进程技术,多终端协同更导致架构复杂化。MediaSession框架通过C/S架构解耦界面与服务层,核心组件包含Medi
- 【节假日】通过开放Api获取节假日数据并保存到json文件
Leslie_Lei
#随笔jsonjava节日
目录依赖节假日数据返回结果类工具类依赖com.fasterxml.jackson.corejackson-databindcom.google.code.gsongson2.8.6cn.hutoolhutool-all5.8.18org.projectlomboklombok节假日数据返回结果类HolidayResponseimportcom.fasterxml.jackson.annotatio
- JAVA LIST<Long>快速转LIST<String>
LeeShaoQing
java学习java
偶然间发现一个问题,获取List传给前端,拿到的值最后两位变成了00。这是因为当Long过长时,到前端数据拉取后几位可能会自动变成0,所以要先处理成String发给前端。ListbindingList=systemSiteExpensesConfigService.getBindingServiceType(bindingServiceTypeDTO);Liststrings=bindingLis
- Xcode26新特性与iOS26适配指南
BianHuanShiZhe
iosmac
Xcode26新特性在WWDC25上Apple推出了Xcode26,相比较Xcode16,它有如下的变化。项目安装包更小,其他组件与工具链只有在需要时才会下载。设置界面重新设计,菜单从顶部挪到了左侧,其中Accounts改名为AppleAccounts,TextEditing改名为Editing,KeyBindings改名为Shortcuts,同时增加了菜单Notifications。模拟器运行时
- 微信小程序节点相关总结
微信小程序节点事件总结bindtap、catchtap、bindclick的区别?`bindclick`和`bindtap`的区别在于:e.target和e.currentTargete.typee.timeStamp触摸事件属性(针对触摸类事件)坐标信息事件绑定数据冒泡与捕获相关其他特殊属性**常见事件类型及特有属性****总结**bindtap、catchtap、bindclick的区别?bi
- 微信小程序出现冒泡问题的原因和解决方法
天和都成
微信小程序微信小程序
微信小程序中的冒泡问题通常由事件冒泡机制引发,即子组件触发的事件会逐级向上传播至父组件。以下是其原因分析及解决方法:一、冒泡问题的原因事件冒泡机制微信小程序中,冒泡事件(如tap、longtap、touchstart等)默认会从触发事件的子组件向上传播至父组件。例如,若子组件和父组件均绑定了bindtap事件,点击子组件时会依次触发子组件和父组件的事件处理函数。事件绑定方式不当使用bind绑定事件
- iouring的demo性能测试程序
Flying Fish(HHH)
iouring算法分布式
/*多线程多实例,注意线程的绑定,一个core绑定一个sq线程,一个或者多个core绑定一个或多个work线程,还有控制worker线程个数,还有numa的绑定编译命令:gcc-g-oiouringwww_iouring.c-L/usr/lib-luring执行命令:numactl--cpunodebind=1--membind=1./iouringio_uring.conf*/#define_G
- Vue.js 过滤器详解
步行cgn
Vuevue.js前端javascript
Vue.js过滤器详解下面我将详细讲解Vue.js中过滤器的语法和使用注意事项,并提供一个完整的演示页面。过滤器基本概念在Vue.js中,过滤器(Filters)是用于文本格式化的功能,可以在双花括号插值和v-bind表达式中使用。过滤器通过管道符(|)指示,主要用于简单的文本转换。{{message|capitalize}}{{message|filterA|filterB}}{{date|fo
- 简单的回调函数理解
望外追晚
c++开发语言
使用两个脚本简单理解回调函数。简单来说,将函数B当做另一个函数A的参数进行调用。Demo1使用当前通用的std::function#include//包含std::function和std::bindusingnamespacestd;//普通函数voidmyCallbackFunction(intvalue,stringname){coutcallback,intdata,stringname)
- Linux网络协议栈的基石:深入剖析inet_hashtables.c的高效设计
109702008
编程#C语言网络linux网络协议人工智能
百万并发连接的背后,是哈希表与锁的精妙博弈在Linux网络协议栈中,inet_hashtables.c是实现TCP/IP协议高性能的核心模块。它通过三层哈希表结构管理海量套接字,支撑百万级并发连接。本文将深入解析其设计思想与关键实现。一、哈希表分层设计:连接管理的基石Linux内核通过三层哈希结构管理套接字,应对不同场景:绑定哈希表(bhash):管理端口绑定关系structinet_bind_b
- 10-C#的dataGridView1和datatable的使用
水果里面有苹果
C#c#java开发语言
C#的dataGridView的使用1.双缓冲-解决控件卡顿//利用反射设置DataGridView1的双缓冲TypedgvType=this.dataGridView1.GetType();PropertyInfopi=dgvType.GetProperty("DoubleBuffered",BindingFlags.Instance|BindingFlags.NonPublic);pi.Set
- WebAssembly:wasm探索与TypeScript模块wasm应用
_Zou
前端笔记webgl笔记typescriptc++wasmwebassemblymacos
目录安装编译环境HelloWorldEmscripten/bind实践TypeScript模块WASM引用更多相关链接安装编译环境前置条件:git\cmake\python\node。编译安装Emscripten通过EmscriptenSDK构建Emscripten是自动的,下面是步骤。$gitclonehttps://github.com/juj/emsdk.git$cdemsdk$./emsd
- apache cxf在线阅读(http://cxf.apache.org/docs/jax-rs.html)
fcxx182
ApacheHTMLjsonSpringXML
ApacheCXFApacheCXFDocumentation>Index>RESTfulServices>JAX-RSDownload|DocumentationOverviewHow-TosFrontendsDataBindingsTransportsConfigurationDebuggingandLoggingToolsRESTfulServicesWSDLBindingsServiceR
- 足球数据API接口 - 【数据接口1】API调用示例代码
https://www.xxe.io/packagecom.huaying.demo.football;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.Unmarshaller;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRoo
- XML读写数据-XPATH用法,快速定位元素
专注VB编程开发20年
xml
在XPath查询效率对比中,两种方式的性能差异如下:绝对路径方案/configuration/system.applicationHost/sites/site[@name='WebSite1']直接通过文档层级导航,避免全局扫描适合已知完整路径结构的场景,解析速度最快13相对路径方案(//site)[@name='"&siteName&"']/bindings/binding//运算符需
- 容器的数据管理与挂载——AI教你学Docker
LuckyLay
AI教你学Dockerdocker容器运维
1.4容器(Container)详解(补充)——容器的数据管理与挂载详解(含宿主机文件交互)数据管理是Docker容器化的重要组成部分。容器本身是临时的、易于销毁的,数据的持久化与与宿主机的数据交互,主要通过**挂载卷(Volumes)和绑定挂载(BindMounts)**来实现。一、容器内部数据的特点临时性:容器内的数据(不做挂载)默认存储于写时层,容器删除后数据随之丢失。持久化需求:需要将数据
- WPF数据绑定详细案例
我叫罗泽南
WPFwpf
代码已经上传到GitHub,附上链接DataBindingDemo,代码环境:Win10+VS2022。在WPF中,数据绑定是将UI控件与后台数据源进行关联的一种机制,使得数据与UI自动同步更新。WPF的数据绑定功能强大,可以绑定到属性、集合、数据库等多种数据源。下面通过一个详细的例子来演示如何在WPF中进行数据绑定。示例:数据绑定到ViewModel的属性1.创建一个简单的MVVM应用Model
- Springboot使用redis添加LocalDateTime时间序列化Java 8报错
hippoDocker
javaredisjava缓存springboot
向redis中存入对象,需要将对象序列化,如果某个字段为LocalDateTime类型,就会出现报错com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Java8date/timetype`java.time.LocalDateTime`notsupportedbydefault:addModule"com.fasterxml
- 传输层协议UDP
仙云同学
udp网络协议网络
目录传输层端口号端口号范围划分两个问题1.一个进程能否绑定多个端口号?2.一个端口号是否可以被多个进程bind?UDP协议编辑UDP的特点面向数据报UDP的缓冲区UDP使用注意事项传输层负责数据能够从发送端传输到接收端端口号在TCP/IP协议中,使用源ip,目的ip,源端口,目的端口,协议号这样的五元组表示一个通信端口号范围划分0~1023:知名端口号,HTTP,FTP,SSH等这些广为使用的应用
- 树莓派5 安装Mysql (Docker + mariadb)方案
cocosum
Dockermysql数据库dockerlinuxmariadb
笔记:2025年6月19日22:53:16树莓派系统里面有自带的mariadb,但是我没用,我使用的docker#创建持久化数据文件夹和配置文件:/data/mysql数据/data/mysql/conf.d配置mkdir-p/data/mysql/conf.dvim/data/mysql/conf.d/remote.cnf#配置添加:[mysqld]bind-address=0.0.0.0doc
- Flutter TCP通信
又菜又爱coding
Flutterfluttertcp/ip
启动TCP服务FuturestartServer()async{finalserver=awaitServerSocket.bind(InternetAddress.anyIPv4,12345);print('Serverlisteningon${server.address}:${server.port}');server.listen((Socketsocket){print('Clientc
- Android14 app被冻结导致进程间通信失败
凯文的内存
AndroidactivitymanagerOomAdjusterfreezapp进程保活Android
软件平台:Android14硬件平台:QCS6115问题:设备开机阶段,由于系统资源紧张,触发了非前台进程的freez机制,导致前台进程与之交互出现binder交互异常,而展示白屏。先从异常日志着手吧:行11804:05-1912:00:00.01557321022153DOomAdjuster:Appadjchangefrompreviousstatetocachedstate:4077com.
- 微信小程序组件库深度解析(2025精选版)
本文全面解析官方+高星第三方组件库,附每个组件的实战案例代码一、官方基础组件库(WeUI)1.视图容器组件(1)scroll-view-滚动视图商品{{item.id}}-{{item.name}}加载中...核心属性:scroll-y:允许垂直滚动scroll-top:设置滚动位置bindscrolltolower:触底事件2.表单组件(1)form-表单容器登录Page({submitForm
- flutter环境变量记录
xiyangyang8110
flutter
环境变量地址D:\0flutter\sdk\flutter_windows_3.7.12-stable\flutter\binD:\0flutter\sdk\flutter_windows_3.22.0-stable\flutter\bin
- 如何用ruby来写hadoop的mapreduce并生成jar包
wudixiaotie
mapreduce
ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢:
1.安装rvm:
不说了 网上有
2.安装ruby:
由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。
3.安装jruby:
rvm install jruby然后等待安
- java编程思想 -- 访问控制权限
百合不是茶
java访问控制权限单例模式
访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问
一:包访问权限;
自定义包:
package com.wj.control;
//包
public class Demo {
//定义一个无参的方法
public void DemoPackage(){
System.out.println("调用
- [生物与医学]请审慎食用小龙虾
comsci
生物
现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡.....
所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质
- org.apache.jasper.JasperException: Unable to compile class for JSP:
商人shang
maven2.2jdk1.8
环境: jdk1.8 maven tomcat7-maven-plugin 2.0
原因: tomcat7-maven-plugin 2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin 2.2就行,即
<plugin>
- 你的垃圾你处理掉了吗?GC
oloz
GC
前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别
- shiro 和 SESSSION
杨白白
shiro
shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此
- 移动互联网终端 淘宝客如何实现盈利
小桔子
移動客戶端淘客淘寶App
2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛
- wordpress小工具制作
aichenglong
wordpress小工具
wordpress 使用侧边栏的小工具,很方便调整页面结构
小工具的制作过程
1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php)
小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变
<?php
class AWP_Post_Category extends WP_Wi
- JS微信分享
AILIKES
js
// 所有功能必须包含在 WeixinApi.ready 中进行
WeixinApi.ready(function(Api) {
// 微信分享的数据
var wxData = {
&nb
- 封装探讨
百合不是茶
JAVA面向对象 封装
//封装 属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性
在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用
例如 1:
//属性 将其设为私有
姓名 name 可以公开
- jquery radio/checkbox change事件不能触发的问题
bijian1013
JavaScriptjquery
我想让radio来控制当前我选择的是机动车还是特种车,如下所示:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><
- AngularJS中安全性措施
bijian1013
JavaScriptAngularJS安全性XSRFJSON漏洞
在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。
一.JSON漏洞
当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,
- [Maven学习笔记九]Maven发布web项目
bit1129
maven
基于Maven的web项目的标准项目结构
user-project
user-core
user-service
user-web
src
- 【Hive七】Hive用户自定义聚合函数(UDAF)
bit1129
hive
用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。
问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?
Double evaluate(Double a, Double b)
- 通过 nginx-lua 给 Nginx 增加 OAuth 支持
ronin47
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证:
&n
- 利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法
bsr1983
session
在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。 在 tomcat-redis-session-manager的github上有如下说明: Session Change Tracking
As noted in the &qu
- 《代码大全》表驱动法-Table Driven Approach-1
bylijinnan
java算法
关于Table Driven Approach的一篇非常好的文章:
http://www.codeproject.com/Articles/42732/Table-driven-Approach
package com.ljn.base;
import java.util.Random;
public class TableDriven {
public
- Sybase封锁原理
chicony
Sybase
昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。 无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的
- java异常处理机制
CrazyMizzz
java
java异常关键字有以下几个,分别为 try catch final throw throws
他们的定义分别为
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating
- hive 数据插入DML语法汇总
daizj
hiveDML数据插入
Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l
- 工厂设计模式
dcj3sjt126com
设计模式
使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。 工厂模式
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。
Example #1 调用工厂方法(带参数)
<?phpclass Example{
- mysql字符串查找函数
dcj3sjt126com
mysql
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st
- jvm内存管理
easterfly
jvm
一、JVM堆内存的划分
分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。
工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中;
年老代满了之后会执行major gc,这个是stop the word模式,执行
- CentOS-6.3安装配置JDK-8
gengzg
centos
JAVA_HOME=/usr/java/jdk1.8.0_45
JRE_HOME=/usr/java/jdk1.8.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME
- 【转】关于web路径的获取方法
huangyc1210
Web路径
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项
- php里获取第一个中文首字母并排序
远去的渡口
数据结构PHP
很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的:
Array
(
[0] => Array
(
[sid] => 2885842
[recetcstoredpay] =&g
- java内部类
hm4123660
java内部类匿名内部类成员内部类方法内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。
&nb
- Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten
zhb8015
maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。
maven pom:
<dependency>
<groupId>org.hibernate</groupId>
<ar
- Spark 性能相关参数配置详解-任务调度篇
Stark_Summer
sparkcachecpu任务调度yarn
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。
由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便
- css3滤镜
wangkeheng
htmlcss
经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。
html代码:
<a href='' class='icon'><img src='utv.jpg' /></a>
css代码:
.icon{-webkit-filter: graysc