434,8 → 434,12 |
|
if (oColorDepth) |
{ |
var colorDepthText = dim.getColorDepthText(); |
/* FIXME: Also update title attribute value */ |
oColorDepth.innerHTML = dim.getColorDepthText(); |
if (oColorDepth.innerHTML != colorDepthText) |
{ |
oColorDepth.innerHTML = colorDepthText; |
} |
} |
|
this.run(); |
459,10 → 463,19 |
|
if (oUA) |
{ |
oUA.innerHTML = navigator.userAgent; |
var ua = navigator.userAgent; |
|
if (oUA.innerHTML != ua) |
{ |
oUA.innerHTML = ua; |
} |
|
/* Converts CREs */ |
oUA.title = oUA.innerHTML; |
var oUAhtml = oUA.innerHTML |
if (oUA.title != oUAhtml) |
{ |
oUA.title = oUAhtml; |
} |
} |
|
this.run(); |
473,144 → 486,89 |
<tr> |
<th><?php echo _('Features'); ?>:</th> |
<td><script type="text/javascript"> |
<?php /* FIXME: Move to window.js, keep i18n */ ?> |
var fullscreen = jsx.dom.window.fullscreen = (function () { |
var _isHostMethod = jsx.object.isHostMethod; |
|
return { |
getSupportedProperty: function (base, names, test) { |
for (var i = 0, len = names.length; i < len; ++i) |
var fullscreen = jsx.dom.window.fullscreen; |
|
(function () { |
function getFeatures () |
{ |
var features = []; |
if (typeof document.cookie != "undefined") |
{ |
var cookiesText = "<?php echo _('Cookies'); ?>" |
if (navigator.cookieEnabled) |
{ |
var name = names[i]; |
if (test.call(null, base, name)) |
if (document.cookie) |
{ |
return name; |
features.push(cookiesText); |
} |
} |
|
return null; |
}, |
|
getSupportedCancel: (function () { |
var _supportedCancel; |
|
return function () { |
if (typeof _supportedCancel == "undefined") |
else |
{ |
var properties = ["cancelFullScreen", "mozCancelFullScreen", |
"webkitCancelFullScreen"]; |
|
_supportedCancel = this.getSupportedProperty(document, properties, _isHostMethod); |
features.push('<span class="unavailable"' |
+' title="Cookies supported, but no data for this site">' + cookiesText + '<\/span>'); |
} |
|
return _supportedCancel; |
}; |
}()), |
} |
else |
{ |
features.push('<span class="offline" title="Cookies supported, but disabled">' + cookiesText + '<\/span>'); |
} |
} |
|
if (fullscreen.isSupportedBy(document.documentElement)) |
{ |
features.push("<?php echo _('Fullscreen'); ?>"); |
} |
|
getSupportedElement: (function () { |
var _supportedElement; |
|
return function () { |
if (typeof _supportedElement == "undefined") |
{ |
var properties = ["fullscreenElement", "mozFullscreenElement", |
"webkitFullscreenElement"]; |
|
_supportedElement = this.getSupportedProperty(document, properties, |
function (base, name) { |
return typeof base[name] != "undefined"; |
}); |
} |
|
return _supportedElement; |
}; |
}()), |
if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length) |
{ |
features.push("<?php echo _('Gamepad'); ?>"); |
} |
|
isSupportedBy: function (elem) { |
var methods = ["requestFullscreen", "mozRequestFullscreen", |
"webkitRequestFullscreen"]; |
return this.getSupportedProperty(elem, methods, _isHostMethod); |
}, |
|
isFullscreen: function () { |
var properties = ["fullscreenElement", "mozFullscreenElement", |
"webkitFullscreenElement"]; |
var supportedProperty = this.getSupportedProperty( |
document, properties, |
function (base, name) { |
return typeof base[name] != "undefined"; |
}); |
|
return supportedProperty && document[supportedProperty] != null; |
}, |
|
cancel: function (target, oldHandler, textTarget) { |
var supportedCancel = this.getSupportedCancel(); |
if (supportedCancel) |
if (navigator.geolocation) |
{ |
features.push("<?php echo _('Geolocation'); ?>"); |
} |
|
if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled()) |
{ |
features.push("Java"); |
} |
|
var storage = jsx.dom.storage; |
if (storage.localStorage.isSupported()) features.push("Local Storage"); |
|
if (navigator.plugins) |
{ |
if (navigator.plugins.length > 0) |
{ |
document[supportedCancel](); |
|
var supportedElement = this.getSupportedElement(); |
if (supportedElement) |
{ |
if (document[supportedElement] == null) |
{ |
if (textTarget) |
{ |
textTarget.textContent = "<?php echo _("Fullscreen"); ?>"; |
} |
|
if (target) |
{ |
target.onclick = oldHandler; |
} |
} |
} |
features.push('<span title="' |
+ navigator.plugins.length |
+ ' plugins installed">Plugins<\/span>'); |
} |
}, |
|
requestOn: function (elem, eventTarget, textTarget) { |
var requestMethodName; |
|
if (elem && (requestMethodName = this.isSupportedBy(elem))) |
else |
{ |
elem[requestMethodName](); |
if (textTarget && this.isFullscreen()) |
{ |
var oldText = textTarget.textContent; |
var me = this; |
var oldHandler = eventTarget.onclick; |
eventTarget.onclick = function () { |
me.cancel(this, oldHandler, textTarget); |
}; |
textTarget.textContent = "<?php echo _("Window"); ?>"; |
} |
features.push('<span class="unavailable" title="Plugins supported, but none detected">Plugins<\/span>'); |
} |
} |
}; |
}()); |
|
(function () { |
function getFeatures () |
{ |
var features = []; |
if (navigator.cookieEnabled) features.push("<?php echo _('Cookies'); ?>"); |
if (fullscreen.isSupportedBy(document.documentElement)) features.push("<?php echo _('Fullscreen'); ?>"); |
if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length) features.push("<?php echo _('Gamepad'); ?>"); |
if (navigator.geolocation) features.push("<?php echo _('Geolocation'); ?>"); |
if (typeof navigator.javaEnabled != "undefined" && navigator.javaEnabled()) features.push("Java"); |
var storage = jsx.dom.storage; |
if (storage.localStorage.isSupported()) features.push("Local Storage"); |
if (navigator.plugins) features.push("Plugins"); |
if (storage.sessionStorage.isSupported()) features.push("Session Storage"); |
|
if (storage.sessionStorage.isSupported()) |
{ |
features.push("Session Storage"); |
} |
|
if (typeof window.ontouchstart != "undefined") features.push("Touch"); |
return features.join(" • "); |
} |
|
|
function stripTags (s) |
{ |
return s.replace(/<[^>]+>/g, "") |
} |
|
var sFeatures = getFeatures(); |
document.write('<span id="features" title="' + sFeatures + '">' + sFeatures + '<\/span>'); |
document.write('<span id="features" title="' + stripTags(sFeatures) + '">' + sFeatures + '<\/span>'); |
|
var oFeatures; |
var oFeaturesHtml; |
var tFeatures = runAsync(function () { |
if (typeof oFeatures == "undefined") |
{ |
619,15 → 577,37 |
|
if (oFeatures) |
{ |
oFeatures.innerHTML = getFeatures(); |
var sNewFeatures = getFeatures(); |
|
if (!oFeaturesHtml) |
{ |
oFeaturesHtml = document.createElement("span"); |
} |
|
if (oFeaturesHtml) |
{ |
oFeaturesHtml.innerHTML = sNewFeatures; |
sNewFeatures = oFeaturesHtml.innerHTML; |
} |
|
if (oFeatures.innerHTML != sNewFeatures) |
{ |
oFeatures.innerHTML = sNewFeatures; |
} |
|
/* Converts CREs */ |
oFeatures.title = oFeatures.innerHTML; |
var newTitle = stripTags(oFeatures.innerHTML) |
if (oFeatures.title != newTitle) |
{ |
oFeatures.title = newTitle; |
} |
} |
|
tFeatures = this.run(); |
}, 1000); |
}()); |
|
var windowText = "<?php echo _("Window"); ?>"; |
</script><noscript><?php echo _('N/A'); ?></noscript></td> |
</tr> |
</table> |
653,7 → 633,7 |
><span class="text"><?php echo _("Printable"); ?></span></a></li> |
<li id="cmd3"><div class="button left right" |
style="cursor: not-allowed !important" |
onclick="fullscreen.requestOn(document.documentElement, this, this.firstChild)" |
onclick="fullscreen.requestOn(document.documentElement, this, this.firstChild, windowText)" |
onkeyup="if (event.keyCode == 13) { this.onclick(); }" |
><span class="text"><script type="text/javascript"> |
if (fullscreen.isSupportedBy(document.documentElement)) |
671,11 → 651,11 |
if (nowIsFullscreen) |
{ |
oldHandler = target.onclick; |
// fullscreen.requestOn(document.documentElement, cmd3.firstElementChild, cmd3.firstElementChild.firstElementChild); |
// fullscreen.requestOn(document.documentElement, cmd3.firstElementChild, cmd3.firstElementChild.firstElementChild, windowText); |
} |
else |
{ |
fullscreen.cancel(target, oldHandler, textTarget); |
fullscreen.cancel(target, oldHandler, textTarget, "<?php echo _("Fullscreen"); ?>"); |
} |
|
previousIsFullscreen = nowIsFullscreen; |