我在我的网站上安装了一个脚本,允许低对比度设置和高对比度设置,因为我的网站将被视障人士使用。该脚本完美无缺。唯一的问题是访问者访问网站的多个页面时。
首次访问该网站时,默认情况下低对比度设置有效,仅显示高对比度设置的链接。如果我然后访问网站的其他页面,默认情况下低对比度设置有效,只显示高对比度链接 (这是完美的,应该如此)。
这是问题所在。如果我单击高对比度链接以高对比度设置查看页面然后转到另一页,则另一页出现在高对比度设置中(应该如此),而不是出现低对比度设置的链接 (我希望发生这种情况),会出现一个指向高对比度设置的链接(由于页面已经处于高对比度设置,因此没有意义)。
要解决这个问题,我了解如果我在每个页面的开头放置一个'查询字符串javascript',每个页面中的链接会将当前对比度设置传递给下一页(只要访问者用链接移动而不是直接键入地址栏)。有谁知道如何创建这样的'查询字符串javascript'?我试图自己创建这样一个字符串,但没有成功。
我的网站尚未完成,但我在http://www.14kt.eu/发布了几页,因此您可以看到我在说什么。
谢谢你的时间,克里斯答案 0 :(得分:2)
查看您网站上的代码,我可以看到您正在使用DynamicDrive.com中的一些示例代码。当您在页面之间切换时,此代码已使用cookie来跟踪要使用的样式表(highcontrast或“none”表示lowcontrast)。
您需要做的就是添加一个javascript行来切换选择样式表的span链接的可见性。这需要在页面加载时运行。
<小时/> 更新:由于代码需要在每个页面中运行,因此只需更改“script_1.js
”文件即可。它目前有一个名为FixRows()
的函数,它在window.onload
事件中运行。只需在其中添加新代码,如下所示:
// JavaScript Document
function FixRows(){
var oddclass = 'sld';
var evenclass = 'sl';
var ulID = 'listings';
var listings = document.getElementById(ulID);
if(listings !=null){
var rows = listings.getElementsByTagName('li');
var len = rows.length;
for(var i = 0; i < len; i++){
rows[i].className = (i%2)?oddclass:evenclass;
}
}
/* new code here */
if(getCookie("mysheet") == 'highcontrast'){
swapFor('Hc','Lc');
}
/* end new code */
};
window.onload = FixRows;