分类目录归档:Web 类别

JavaScript实现可重复倒数读秒

动态提示能很好的提高一个网站的人性化程度。比如下载页面,很多网站都有倒数秒的功能 “5..4..3..2..1秒钟后即将开始下载”等这样动态提示语。有时候的需求只需执行一次不用清零,而有时我们需要反复的执行倒数秒的功能。

利用 JavaScript 代码,可以重复实现倒数读秒功能。

核心的 JavaScript 语法是:

setInterval(code,millisec[,”lang”])

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

对于只需一次调用的倒数读秒:

对于下载页面,跳转页面等,只需一次倒数读秒的,可以直接使用一次性代码即可:

在需要引用的地方插入HTML代码:

<p><span id="count-down">5</span>秒钟后自动返回文章页面</p>

其次,在网页底部引用 JavaScript:

<script type="text/javascript">
var seconds = 4; //倒数5秒 4=5-1
    setInterval(function() {
    if (seconds > 0) { //若要倒数至0秒 seconds >= 0
        document.getElementById("count-down").innerHTML = seconds; //打印秒
        seconds-=1;
    } else {
        clearInterval(timer); //防止多次累加
        return;
    }
}, 1000); //每1000毫秒=1秒钟执行一次 t54321()函数 
</script>

演示 Demo

对于#需要重复调用的倒数读秒:

在需要引用的地方插入HTML代码:

<a onclick="t54321()"><span id="count-down">5</span>秒钟后自动关闭</a>

然后,在网页底部引用 JavaScript:

<script type="text/javascript">
    function t54321() {
    var seconds = 4; //倒数5秒 4=5-1
    setInterval(function() {
        if (seconds > 0) { //若要倒数至0秒 seconds >= 0
           document.getElementById("count-down").innerHTML = seconds; //打印秒
           seconds-=1;
        } else {
           clearInterval(timer); //防止多次累加
           seconds = 4; //重置倒数秒变量
           return;
        }
    }, 1000); //每1000毫秒=1秒钟执行一次 t54321()函数
 }
</script>

演示 Demo

通过 onclick=“t54321()” 点击反复调用该函数。当然,你也可以使用其他交互方式进行调用操作。

继续阅读JavaScript实现可重复倒数读秒

根据宽度选择CSS

自适应站点的核心,就是一套代码可以在任何尺寸屏幕的设备上,恰当的展示信息。如何根据屏幕的宽度来选择性的使用 css,就尤为重要了。

总共有三种方法可以应用媒体查询:

1.样式表链接的媒体查询属性

直接在 HTML文件头部引入以下代码:

<link rel="stylesheet" media="screen and (max-width:500px)" href="1.css" />
<link rel="stylesheet" media="screen and (min-width:501px) and (max-width:599px)" href="2.css" />
<link rel="stylesheet" media="screen and (min-width:600px)" href="3.css" />

(max-width: 500px) 是指:屏幕尺寸 500px,即使用此 css。

(min-width:501px) and (max-width:599px) 是指:501px≤ 屏幕尺寸 ≤599px ,即使用此 css。

(max-width: 600px) 是指:600px≤ 屏幕尺寸,即使用此 css。

演示 Demo

1.css 的背景设置为  bisque 

即 当 屏幕尺寸 ≤500px,为      

2.css 的背景设置为  aquamarine 

即 当 501px ≤ 屏幕尺寸 ≤ 599px,为      

3.css 的背景设置为  aqua 

即 当 600px ≤ 屏幕尺寸,为      

按照代码,可以得到如下效果:

除此之外,还有以下两种方法可以实现。

2.在 @tag 标签嵌入

@media screen and (min-width: 500px) {
  body { background-color: green; }
}

3.在 @import 标签嵌入

@import url("1.css") only screen and (min-width: 500px);

但是因为性能的原因,我们应该避免使用 @import,这是一个代价和优先级都非常高的标签。

在网页设计中,你也要考虑 css 与 @media 的权衡,css引入的多了,HTTP请求次数也会增加,拖累整个网站的加载速度。要根据实际情况,合理的选择方法。

继续阅读根据宽度选择CSS

JavaScript更改Copyright年份

随着站点的慢慢发展和变更,网站的结构必将趋于复杂,一个小小的站点最初可能就只有两三个页面,而几年后的规模肯定不止于此。每年的元旦假期前夕,总是最痛苦的时候,因为在12月31日,要将所有页面底部的 Copyright 的年份 +1,相当于每个页面都要发生边个更,并更新到服务器上,并刷新缓存。

利用 JavaScript 代码,可以获取当前服务器上的时间(与访问设备时间无关),来自动更新年份时间。

核心的 JavaScript 语法是:

dateObject.getFullYear()

getFullYear() 方法可返回一个表示年份的 4 位数字。该方法总是结合一个 Date 对象来使用,用 Date() 函数替代 dateObject 即可。

Date().getFullYear()

核心的 JavaScript 代码已经完成,接下来需要将其引入到 HTML代码中,并在合适的位置使用,可以利用  <span></span> 确定使用位置。(设定 id = footerYear

执行代码是:

document.getElementById(id) 方法可返回对拥有指定 ID 的第一个对象的引用。

document.getElementById(id)

这里定义了 id = footerYear,所以该写代码:

document.getElementById(‘footerYear’)

tablerowObject.innerHTML=HTML。innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML。仔执行 innerHTML即可,改写代码:

document.getElementById(‘footerYear’).innerHTML

即,单独的JavaScript代码如下:

document.getElementById('footerYear').innerHTML = new Date().getFullYear() + '';

还可以引入到 HTML文件中 </body> 之前:

<script type="text/javascript"> 
document.getElementById('footerYear').innerHTML = new Date().getFullYear() + '';
</script>

然后在 Copyright 年份位置引入<span></span>

Copyright <span id="footerYear">2014</span> Scenery Architecture. All rights reserved.

就会输出(2017年):

Copyright 2017 Scenery Architecture. All rights reserved.

继续阅读JavaScript更改Copyright年份

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设置选中文字高亮背景颜色

利用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验证的文件