Помогите разобраться с скриптом для версии сайта для слабовидящих

M
На сайте с 19.08.2015
Offline
34
1095

Здравствуйте, помогите пожалуйста разобраться со скриптом для версии сайта для слабовидящих.

Очень долго искал, всякое перепробовал, как оказалось нормального ничего нету, только всякого нерабочего шлака валом, да и кому на-р это нужно? Только гос. организациям... Которые не могут понять, что если чел слабовидящий, он будет с лупой читать, т.к. он все так читает, ему так привычней и удобней....

Но, как бы там не было нашел, сделал: http://dspodsnegnik.ru

Но все ничего, скрипт выводит кнопку по умолчание в самый вверх, нет возможности вставить в нужно место, вот с этим и прошу помочь, вот сам скрипт:

window.onload = funonload;
function funonload() {
var coocka = ReadSpec('special');
addButton(coocka);
checkSpec(coocka);
}


function checkSpec(spec) {
setButton(spec);
if (spec == 'y')
{
addStyleSheet('http://site.ru/templates/templates/_css/lupoglaz.css');
}
}


function ReadSpec(name)
{
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
}

function SetCookieSpec(name,value) {
document.cookie = name + "=" + value;
}



function addButton() {
var button = document.createElement('input');
var parentElem = document.body;
var s = ReadSpec('special');
button.type = 'button';
button.id = 'spec';
button.value = ' ';
button.setAttribute("onclick","Spec()");
button.setAttribute("style","");
parentElem.insertBefore(button, parentElem.firstChild);
setButton(s);
}



function addStyleSheet(url)
{
// Создаём элемент LINK/STYLE и добавляем в документ
var style;

//

// if (typeof url == 'undefined')
// {
// style = document.createElement('style');
// }
// else
// {
style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = url;
// style.id = 'speccss';
// }

document.getElementsByTagName('head')[0].appendChild(style);
// Находим новый стиль в коллекции styleSheets
style = document.styleSheets[document.styleSheets.length - 1];

// Делаем объект совместимыми с W3C DOM2 (для IE)
return StyleSheet_makeCompatible(style);

}



function delStyleSheet()
{
style=document.getElementsByTagName('head')[0].lastChild;//document.styleSheets[document.styleSheets.length - 1]
document.getElementsByTagName('head')[0].removeChild(style);//
}


function Spec() {
var spec = ReadSpec('special');
//alert (spec);

if (spec == 'y')
{
delStyleSheet();
SetCookieSpec('special','n'); setButton('n');
}
else {
addStyleSheet('http://site.ru/templates/templates/_css/lupoglaz.css');
SetCookieSpec('special','y'); setButton('y');

}
}



function setButton(spec) {
var inputTag = document.getElementById("spec");
if (inputTag.hasAttribute("value")) // если есть атрибут value
defaultValue = inputTag.getAttribute("value");
if (spec == 'y')
{
inputTag.setAttribute("value", "версия для зрячих");
}
else {
inputTag.setAttribute("value", "версия для не зрячих");
}
}



function StyleSheet_makeCompatible(style)
{
// Mozilla не даёт доступа к cssRules до загрузки стиля
try
{
style.cssRules;
}
catch (e)
{
return style;
}

// Создаём CSSStyleSheet.cssRules
if (typeof style.cssRules == 'undefined' && typeof style.rules != 'undefined')
style.cssRules = style.rules;

// Создаём CSSStyleSheet.insertRule и CSSStyleSheet.deleteRule
if (typeof style.insertRule == 'undefined' && typeof style.addRule != 'undefined')
style.insertRule = StyleSheet_insertRule;
if (typeof style.deleteRule == 'undefined' && typeof style.removeRule != 'undefined')
style.deleteRule = style.removeRule;

// Проверяем, существуют ли все нужные свойства
if (typeof style.cssRules == 'undefined' || typeof style.insertRule == 'undefined'
|| typeof style.deleteRule == 'undefined')
return null;
else
return style;
}

function StyleSheet_insertRule(rule, index)
{
// Выделяем селектор и стиль из параметра
if (rule.match(/^([^{]+)\{(.*)\}\s*$/))
{
this.addRule(RegExp.$1, RegExp.$2, index);
return index;
}
throw "Syntax error in CSS rule to be added";
}

Как понял, это отвечает на вывод кнопки в нужно месте:

function addStyleSheet(url)
{
// Создаём элемент LINK/STYLE и добавляем в документ
var style;

//

// if (typeof url == 'undefined')
// {
// style = document.createElement('style');
// }
// else
// {
style = document.createElement('link');
style.rel = 'stylesheet';
style.type = 'text/css';
style.href = url;
// style.id = 'speccss';
// }

document.getElementsByTagName('head')[0].appendChild(style);
// Находим новый стиль в коллекции styleSheets
style = document.styleSheets[document.styleSheets.length - 1];

// Делаем объект совместимыми с W3C DOM2 (для IE)
return StyleSheet_makeCompatible(style);

}

Но что тут не так, и как именно вывести хз.. т.к. в java пока не силен...

Помогите пожалуйста.

Ragnarok
На сайте с 25.06.2010
Offline
239
#1

промахнулись.

кнопку выводит


addButton(coocka);

чтобы убрать автовывод, уберите эту строку из функции funonload

а самый простой способ вывести кнопку там где нужно -- вставить код


<input type="button" id="spec" value="версия для зрячих" onclick="Spec()" style="">
//TODO: перестать откладывать на потом
M
На сайте с 19.08.2015
Offline
34
#2
Ragnarok:
промахнулись.
кнопку выводит

addButton(coocka);

чтобы убрать автовывод, уберите эту строку из функции funonload

а самый простой способ вывести кнопку там где нужно -- вставить код

<input type="button" id="spec" value="версия для зрячих" onclick="Spec()" style="">

Спасибо добрый человек, все работает!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий