CSS设置选中文字高亮背景颜色

如果想让网站风格更加统一,有时候你会苦恼于浏览器默认的选中文字的蓝色背景,有时候真的与网站风格不相匹配,所以需要利用CSS来更改并统一显示效果。

在 Windows 中,Internet Explorer 与 Microsoft Edge,或者 Google Chrome等浏览器,都只是默认的蓝色选中背景。

而在 macOS 中,情况能好一些,因为用户可以自定义高亮显示颜色,但这也仅仅在本机上,无法对于所有用户统一的体验。

所以,就要在CSS文件中添加以下代码:(用 #FF9 演示)

::selection {
background:#FF9;  //更改颜色
color:#F00;
}
::-moz-selection {
background:#FF9;  //更改颜色
color:#F00;
}
::-webkit-selection {
background:#FF9;  //更改颜色
color:#F00;
}

选中效果:

继续阅读CSS设置选中文字高亮背景颜色

Swift3获取系统系统间并比较

在Swift3.x 版本中一个很不错的简化,就是将获取系统时间由NSDate()修改为Date(),可千万不要认为只是改了个名称这样简单,这使得代码更加简洁。

使用Date()获取当前系统时间:

let date = Date()

分离年月日:

let calendar = Calendar.current
var year = calendar.component(.year, from: date)
var month = calendar.component(.month, from: date)
var day = calendar.component(.day, from: date)

分离后,既可以使用一般的语句进行时间的比较。

以下是判定 今天是不是我生日 的代码实例(Playground):

//: Playground - noun: a place where people can play

import UIKit
let myBirthday = (1996, 5, 3)
var birthYear = 0

let date = Date()
let calendar = Calendar.current
var year = calendar.component(.year, from: date)
var month = calendar.component(.month, from: date)
var day = calendar.component(.day, from: date)

if month == myBirthday.1 {
    if day == myBirthday.2 {
        birthYear = year - 1996
        print("It's my \(birthYear)'s birthday 👑")
    }
}

继续阅读Swift3获取系统系统间并比较

Swift3函数,排除参数为blank

Swift 的 func,在传递参数的过程,如何排除 空值 blank?这是我在 Udacity 的 Swift Problem Set 中的一道作业题目。

Swift Problem Set 中的第16道题目如下:

Exercise 16

The function ‘beginsWithVowel’ should take a single ‘String’ parameter and return a ‘Bool’ indicating whether the input string begins with a vowel. If the input string begins with a vowel return true, otherwise return false.
First, you will want to test if the input string is “”. If the input string is “”, then return false. Otherwise, you can access the first character of a ‘String’ by using ‘nameOfString.characters[nameOfString.startIndex]’.

输入一个单词,如果单词开头为元音(A, E, I, O, U),则返回 Bool类型 为 true;如果单词开头为辅音,则返回 Bool类型 为 false;如果参数为 “” 空值,返回为false。

以下是检验样例:

beginsWithVowel(letter: "Apples")         // true
beginsWithVowel(letter: "pIG")             // false
beginsWithVowel(letter: "oink")            // true
beginsWithVowel(letter: "udacity")        // true

//Test if the input string is "". If the input string is "", then return false.
beginsWithVowel(letter: "")                  // false

最先想到的就是用:

if letter == nil

但是,Xcode 编译器提示了警告,非选择性比较字符串的值为nil始终返回false。

先来试试,

if letter == “”

既然 Swift 不允许 if letter == “”,那就从反面出发:

if letter != “”

用 if-else 语句,用 else 来否定 blank:

此方法在 Udacity 上的审阅评价:

 

继续阅读Swift3函数,排除参数为blank

通过Windows错误报告诊断错误原因

在使用 Windows 的时候,可能会遇到一些程序打开“已经停止工作”的原因,而系统并为能够给出详细的错误原因,这时候,我们可以使用 Windows 错误报告,来查找程序冲突的原因。

Windows 可能会因为多种因素导致软件的停止工作。譬如,比较出名的 刺客信条:大革命(Assassin’s Creed : Unity)与 Windows XAudio2_7.dll 文件冲突,导致程序运行15分钟左右后进程结束。

此时,Windows 的对话栏不会告诉你导致其问题的具体原因,只会给出你一个错误提醒,但是这并不是什么有价值的信息。

但是,我们可以利用 Windows 系统信息的错误报告,来找到原因,并帮助我们解决问题。

运行 中输入,打开 系统信息

msinfo32 ⏎

软件环境 \ Windows 错误报告

(Software Environment \ Windows Error Reporting)

选项卡中,搜索错误报告:

详细信息 中,我们可以找到导致程序停止工作的原因是 XAudio2_7.dll 未加载。从而帮助我们,临时删除 XAudio2_7.dll 文件来保证程序的稳定运行。

所以,对于其他的程序停止工作的问题,我们都可以用系统信息中的Windows错误报告,找出具体的原因,帮助我们更精确的找出问题,并解决问题。

继续阅读通过Windows错误报告诊断错误原因

利用HTML代码下载配有HTTP_REFERER验证的文件

现在很多服务器,都有引入判断函数,能够判断出,终端调用链接的方式,从而阻止一些盗链和禁止下载的行为。

就拿必应搜索来说:

html-download-bing-1

通过HTML源代码或者获取并还原了图片或视频的下载地址的时候,单独访问文件地址,则会出现无效链接的情况:

html-download-bing-wrong

链接其实是没有问题的,只是必应最近增加的判断链接调用方式的函数,使得直接访问文件的方式失效。想要下载必应中的图片或者视频,就必须骗过验证。

借助于 IE 的 F12开发人员工具,我们可以查看出两种请求方式的区别:

从必应网站访问:

html-download-bing-source

直接访问文件地址:html-download-bing-http-get

对比就是:

html-download-bing-referer

两者的区别就是 Referer。HTTP Referer是header的一部分,当浏览器向 Web服务器 发送 Get请求 的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

除了使用 BurpSuite 修改抓包信息外,比较简单的方法是自己构造。所以,我们就要将调用视频链接地址的方式,

使用 <body></body> 调用

新建一个HTML文档,在<body></body>中调用视频:

html-download-bing-code

然后再本地打开文档,另存为保存文件,即可下载:

html-download-bing-downloading

继续阅读利用HTML代码下载配有HTTP_REFERER验证的文件