用history api”偷换”浏览器历史记录

HTML5提供了新的history接口,例如pushstate,以及popstate。通常情况下,浏览器的历史记录能保存访问历史,但是因为有了history api,pushstate和replacestate,我们甚至可以“偷换掉”浏览器的历史记录,偷走后退按钮,让浏览者点按“后退按钮”时,到一个你指定的网页,看起来就像是真的后退历史记录一样!这个网页还可以跨域,而且就算不存在向前d历史记录也能创建。有什么好处呢?想让访客更多的留在你的网站上?想要……? 用history api”偷走”浏览器后退按钮 实现代码如下: 第一步,创建一个历史 这一步创建一个带有hash的历史,方便p… Read More

网页检测 AdBlock 的 6 种方法

有些网页上充斥着令人厌恶的广告,这些广告不仅阻碍了信息的获取,有的还严重影响了浏览者的心情。特别是某些毫不相关的多媒体广告和弹出式窗口,不仅让人感到被骚扰,还很容易误点到,浪费宝贵的时间。由此便诞生了大名鼎鼎的跨平台 AdBlock 插件,在任何主流浏览器上都有它的扩展或插件,用户可以安装它并屏蔽绝大多数的广告。 既然 AdBlock 有检测广告并屏蔽它们的方法,作为网页制作者,其实也有反过来检测 AdBlock 的方法。 为什么要检测 AdBlock 这是一个有争论的问题:用户有选择不看广告、在浏览器页面上销毁广告的权利,网站也有捆绑广告和信息一同派发给你并收取广告商展示费用的自由。这两者都不能互相干预,并且在… Read More

网站图片JPG、PNG、GIF哪个好,该选择谁

目前网站图片的采用一共有流行三种,分别是JPG、PNG、GIF,然而很多人并不知道三者在选择的时候究竟应该选谁(BMP就不考虑了吧)。虽然都可以存储图片,但是如果要发布到网上,就必须考虑速度、大小和失真程度的问题。如果你运用得好,选对图片,那样便会使网站的整体体验上升,如果你运用得不好,就会引起反效果。下面我通过文件大小等多方面的元素来讲一下网站图片的合理选择。 PNG、GIF、JPG 介绍 GIF 图片 Gif 算是比较老的图片格式了,它的色彩效果最低,用gif保存鲜艳的图片的话会让你的网站看上去非常可怕。但是gif有着不可忽视的特点:体积小,有着极好的压缩效果,支持动画,并且支持透明效果,虽然这个透明… Read More

Swift中文教程(二十) 扩展

扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)   Swift 中的扩展可以:   添加计算型属性和计算静态属性 定义实例方法和类型方法 提供新的构造器 定义下标 定义和使用新的嵌套类型 使一个已有类型符合某个接口 注意: 如果你定义了一个扩展向一个已有类型添加新功能,那么这个新功能对该类型的所有已有实例中都是可用的,即使它们是在你的这个扩展的前面定义的。 &nbs… Read More

兼容IE和FF:获取Referer的JS和PHP方法 及 PHP利用curl伪造IP和来路

发现一个关于浏览器兼容的问题,当用JS 执行代码 window.location.href=”http://justcoding.iteye.com” 来进行跳转的时候,Firefox 可以获取到到HTTP_REFERER页面,但是在IE中这一项为空,后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂 IE 的浏览器,很多浏览器运行的很好的东西,它就是不支持,最后没有办法,只能PHP伪造来源HTTP_REFERER的方法或者用JS来伪造。 IE可以识别的 HTTP_REFERER 提交是通过click 触发的事件或者是 Form 表单提交… Read More

Swift中文教程(十九) 类型嵌套

枚举类型常被用于实现特定类或结构体的功能。也能够在有多种变量类型的环境中,方便地定义通用类或结构体来使用,为了实现这种功能,Swift允许你定义类型嵌套,可以在枚举类型、类和结构体中定义支持嵌套的类型。   要在一个类型中嵌套另一个类型,将需要嵌套的类型的定义写在被嵌套类型的区域{}内,而且可以根据需要定义多级嵌套。     类型嵌套实例   下面这个例子定义了一个结构体BlackjackCard(二十一点),用来模拟BlackjackCard中的扑克牌点数。BlackjackCard结构体包含2个嵌套定义的枚举类型Suit 和 Rank。   在Blackjack… Read More

Swift中文教程(十八) 类型检查

类型检查是一种检查类实例的方式,并且或者也是让实例作为它的父类或者子类的一种方式。   类型检查在 Swift 中使用is 和 as操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。   你也可以用来检查一个类是否实现了某个协议,就像在 Protocols Checking for Protocol Conformance部分讲述的一样。   定义一个类层次作为例子   你可以将它用在类和子类的层次结构上,检查特定类实例的类型并且转换这个类实例的类型成为这个层次结构中的其他类型。这下面的三个代码段定义了一个类层次和一个包含了几个这些类实例的数组,作为类型检查… Read More

超链接特效

这里提供了各种各样的超链接特性,有些是借助伪元素,有些是借助svg,有些是借助HTML5动画。用你的鼠标悬停在这些链接上,给你跟传统链接完全不一样的效果感觉。你需要使用现代浏览器,比如谷歌浏览器或火狐浏览器。   Demo:http://www.webhek.com/misc/link-style/… Read More

DataList:HTML5中的input输入框自动提示宝器

DataList的作用是在你往input输入框里输入信息时,根据你敲进去的字母,自动显示一个提示下列列表,很像百度或谷歌的搜索框的自动提示,在飞机票火车票的搜索页面上也有这样的效果。它是HTML5里新增的一个非常有用的元素。   DataList的表现很像是一个Select下拉列表,但它只是提示作用,并不限制用户在input输入框里输入什么。 HTML5 Datalist的语法其实跟select下拉列表的语法几乎完全一样,非常的简单! C代码 <label for="country_name">国家 : </label><input id="country_name" nam… Read More

Shell入门教程:算术运算

Bash的算术运算有以下几种方法: 序号 名称 语法 范例 1 算术扩展 $((算术式)) r=$((2+5*8)) 2 使用外部程序 expr 算术式 r=`expr 4 + 5` 3 使用 $ $[算术式] r=$[4+5] 4 使用内置命令 declare declare -i 变量=算式式 declare -i r=8+16 5 使用内置命令 let let 算术式 let r=8+16   第一节:算术扩展 算术扩展语法:$((算术式)) 如果表达式中有变量,该变量名称之前最好不要加$这个符号,以免该变量不存在时,造成语法的错误。 例如: unset i echo $((12+$i))   由于变量i不存在(行1),所以行2会变成:echo $((12+)… Read More

Shell入门教程:命令替换 $() 和 “

所谓命令替换,是把命令执行后的标准输出放入变量中。这是一个十分有威力的功能。例如说, 想查看工作目录中所有的文件名,可执行ls命令,但如何把这些文件名存入变量中,供往后的程序代码再利用呢?   使用命令替换,轻轻松松就可以做到这点。在Script设计中,运用这项功能的比重相当高。 命令替换的语法有以下两种: 新式写法:变量名称=$(命令)   #强烈建议采用新式的写法 旧式写法:变量名称=`命令` 注意,上式是使用一对“`”(在键盘的左上角)符号含括住命令,而不是用单引号! Bash会把执行命令后产生的标准输出,赋值给指定的变量。在这个过程中,默认会自动删除换行字符。例如: DIRS=$(ls) &nbs… Read More

如何查看 Linux是32位还是64位?

方法一:执行命令 file /sbin/init [root@localhost jianbao]# file /sbin/init   /sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped   即是32位的 Linux, 若是64位的, 显示的是 64-bit 。 例如,在另一台 64 位机器运行的结果: [root@edunosql ~]# file /sbin/init   /sbin/init: ELF 64-bi… Read More

二级域名和二级目录的联系与区别

当网站发展到一定时期,想要扩大网站规模、建立新频道的时候,相信很多人和我一样在选择二级域名和二级目录上犯了难。这篇文章我深入分析之后给出了答案。如果你的网站在使用二级域名和二级目录捉摸不定的时候,看看此文,会对你有所帮助的。   首先,我们来看看什么是二级域名,什么是二级目录?   1:二级域名:需要创建二级域名,设置DNS,修改A记录,指定IP等操作。具体建网站或者编辑网页时,需要对不同二级域名下的内容分开存放。相当于一个独立的网站。 如,http://bbs.keennet.cn   2:二级目录,就是子目录,继承在主站目录下的,相当于网站的跟目录在建立一个文件夹存放网站。… Read More

HTML5 Canvas(画布)教程 – 图像处理

Canvas标记很多年前就被当作一个新的HTML标记成员加入到了HTML5标准中。在此之前,人们要想实现动态的网页应用,只能借助于第三方的 插件,比如Flash或Java,而引入了Canvas标记后,人们直接打通了通往神奇的动态应用网页的大门。本教程内容只覆盖了一小部分、但却是非常重 要的canvas标记的应用功能——图像显示和处理。 图像来源 最常见的在canvas上画图的方法是使用Javascript Image对象。所支持的来源图片格式依赖于浏览器的支持,然而,一些典型的图片格式(png,jpg,gif等)基本上都没有问题。   图片可以从DOM中已经加载的元素中抓取,也可以按需即时创建。 J… Read More