JavaScript第五章:平稳退化
1.平稳退化
平稳退化:如果正确地使用了JavaScript脚本,就可以让访问者的浏览器不支持JavaScript的情况,仍能顺利地浏览你的网站。
注意:应该只在绝对必要的情况才使用弹出窗口。
创建新的浏览窗口:使用window对象的open()方法。
open()方法是使用BOM的一个好案例,它的功能对文档的内容也无任何影响。这个方法只与浏览环境有关
window.open(url,name,feature);
//url是新窗口里打开的网页的url地址
//name是新窗口的名字
//feature是新窗口的各种属性。设置各种属性的原则是新窗口的浏览功能要少而精
function popUp(winURL){
window.open(winURL,"popup","width=320,height=480");
}
//我在这个函数里已对新窗口命名
//所以当新的url地址传递给这个函数时,这个函数将把新窗口里的现有文档替换成新url地址处的文档,而不是创建一个新窗口
上述函数不会对网页的可访问性有任何影响,会影响到网页的是:我将如何使用这个函数。
调用popUp函数的一个方法是使用伪协议。
2.“javascript:”伪协议
伪协议:是一种非标准化的协议。
“javascript:”伪协议:让我们可以通过一个链接去调用JavaScript函数。
下述语句在支持javascript伪协议的浏览器中运行正常,较老的浏览器则会尝试打开这个链接但失败。
总之,在HTML文档里通过“javascript:”伪协议调用JavaScript代码的做法非常不好。
<a href="javascript:popUp('http://wwww.example.com/');">Example</a>
<-- 通过javascript伪协议调用popUp函数的具体做法 -->
3.内嵌的事件处理函数
回忆一下,我们在第四章中曾经使用onclick事件处理函数作为属性嵌入在<a>标签,这个处理函数将在onclick事件发生时调用图片切换函数。
同样地,我们可以将它调用popUp函数。
<a href='#' onclick="popUp('http://wwww.example.com/'); return false;">Example</a>
//这里的href属性没有什么作用,因为与链接有关的重要信息都包含在onclick属性中。
//因为使用了return false语句,这个链接不会真正地打开
#:是一个供文档内部使用的链接记号。在这条指令中,表示未指向任何目标的内部链接。
这个技巧依然很糟糕,因为它们都不能实现平稳退化。如果用户已经禁用了JavaScript功能,这样的链接毫无用处。
4.谁关心这个
想象一下,我们的用户为搜索机器人,它们浏览Web的目的是把网页的添加到搜索引擎里的数据库。然而,目前只有极少的搜索机器人能理解JavaScript代码。所以,如果你的JavaScript网页不能平稳退化,它们在搜索引擎上的排名就可能大受损害。
//把href属性设置为真实存在的url地址后,即使JavaScript已被禁用,这个链接依然可用
<a href="http://wwww.example.com/" onclick="popUp(this.href);return false;"
>Example</a>
这个方法的不足之处:每当需要打开新窗口时,就不得不把一些JavaScript嵌入标记文件中。
如果能把包含事件处理函数在内的所有JavaScript代码全部放在外部文件中,这个技巧将更加完善。
上一篇: 退化学习率的应用