我一直在研究iPad的HTML5应用程序。该应用程序的一部分包括使用替代样式表。这在iOS 4 Safari上运行良好,在桌面上的Safari上运行良好。但是,我刚刚将一台iPad升级到iOS 5测试版,它已经不再适用了。有什么想法吗?
这是我的代码。
function (options) {
var i, a, main;
for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
if (a.rel.indexOf("style") != -1
&& a.title) {
a.disabled = true;
if (a.title == options.title) {
a.disabled = false;
console.log('The theme should be changing to : ' + a.title);
}
}
答案 0 :(得分:0)
搜索SO和网络后,我对任何解决方案都不满意。所以我提出了一个新的解决方案,在旧的ipad上使用chrome,ff,ie和safari和safari:
首先设置样式:
<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");
a.setAttribute("title", a.getAttribute('data-title'));
a.disabled = true
}
o.setAttribute("title", undefined);
o.setAttribute("rel", "stylesheet");
o.disabled = false
//app.cookieCreate("style", title, 365);
}