После поиска в SO и в Интернете меня не порадовало ни одно из решений.Поэтому я предложил новое решение, которое работает в chrome, ff, т.е. и safari и safari на старом ipad:
Первые стили набора:
<link rel="stylesheet" href="./codebase/touchui.css" data-title="default" type="text/css" media="screen" charset="utf-8">
<link rel="alternate stylesheet" href="./codebase/ios.css" data-title="ios" type="text/css" media="screen" charset="utf-8">
<link rel="alternate stylesheet" href="./codebase/jq.css" data-title="jq" type="text/css" media="screen" charset="utf-8">
<link rel="alternate stylesheet" href="./codebase/sky.css" data-title="sky" type="text/css" media="screen" charset="utf-8">
<link rel="alternate stylesheet" href="./codebase/green.css" data-title="green" type="text/css" media="screen" charset="utf-8">
Обратите внимание на атрибут "data"-title "это пользовательский атрибут.
Затем используйте эту функцию для изменения таблицы стилей (обратите внимание, что она установлена в области приложения, вы можете сделать ее стандартной функцией:
app = {}
app.styleSet=function(title) {
var i, a
var o;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++)
if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute('data-title') ) {
if (a.getAttribute('data-title') == title)
o = a
a.setAttribute("rel", "alternate stylesheet"); // the order here is important
a.disabled = true
a.setAttribute("title", a.getAttribute('data-title'));
}
o.setAttribute("title", undefined); // the order here is important
o.disabled = false
o.setAttribute("rel", "stylesheet");
//app.cookieCreate("style", title, 365);
}