139 lines
No EOL
5.5 KiB
HTML
139 lines
No EOL
5.5 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<title>Test: Responsive without ViewPort Tag</title>
|
|
</head>
|
|
<body>
|
|
<h2>Viewport Detections</h2>
|
|
<h3><a href="viewport-meta.html">With ViewPort Tag</a></h3>
|
|
|
|
<div id="result"></div>
|
|
|
|
<ul>
|
|
<li>1) Prefered: Inner browser surface/viewport. Excludes toolbars & scrollbars.</li>
|
|
<li>2) Fallback: Like 1, but not supported everywhere.</li>
|
|
<li>3) Experimental: Just testing accuracy here.</li>
|
|
<li>4) Prefered: Current browser size. Also takes into account a resized browser window.</li>
|
|
<li>5) Fallback: Measures the entire screen resolution.</li>
|
|
<li><a href="http://www.browserscope.org/user/tests/table/agt1YS1wcm9maWxlcnIRCxIEVGVzdBiAgICA-dvoCQw?v=3&layout=simple" target="results">BrowserScope Results</a></li>
|
|
</ul>
|
|
|
|
<script>
|
|
// Throttle navigators from triggering too many resize events
|
|
var resizeId = 0;
|
|
function onResize() {
|
|
clearTimeout(resizeId);
|
|
resizeId = setTimeout(resize, 50);
|
|
}
|
|
|
|
function addResult(title, value) {
|
|
var ele = document.createElement("div");
|
|
|
|
if (value !== false) {
|
|
ele.innerHTML = title + ": " + value;
|
|
|
|
if (value === "false") {
|
|
value = 0;
|
|
}
|
|
else if (value === "true") {
|
|
value = 1;
|
|
}
|
|
|
|
browserScopeAdd(title, value);
|
|
} else {
|
|
ele.innerHTML = title;
|
|
}
|
|
|
|
return ele;
|
|
}
|
|
|
|
// Log results to BrowserScope
|
|
function browserScopeClear() {
|
|
window._bTestResults = {};
|
|
}
|
|
|
|
function browserScopeAdd(title, value) {
|
|
window._bTestResults = window._bTestResults || {};
|
|
window._bTestResults[title] = value;
|
|
}
|
|
|
|
function browserScopeLog() {
|
|
var result = document.getElementById("browserscope");
|
|
if (result) {
|
|
result.parentNode.removeChild(result);
|
|
}
|
|
|
|
var apiKey = 'agt1YS1wcm9maWxlcnIRCxIEVGVzdBiAgICA-dvoCQw';
|
|
var script = document.createElement('script');
|
|
|
|
script.id = "browserscope";
|
|
script.src = 'http://www.browserscope.org/user/beacon/' + apiKey;
|
|
|
|
// use insertBefore to keep IE from throwing Operation Aborted (thx Bryan Forbes!)
|
|
var head = document.head || document.getElementsByTagName('head')[0];
|
|
// but insert at end of head, because otherwise if it is a stylesheet, it will not override values
|
|
head.insertBefore(script, head.lastChild);
|
|
}
|
|
|
|
// Detect
|
|
function resize() {
|
|
browserScopeClear();
|
|
|
|
var result = document.getElementById("result");
|
|
var parent = result.parentNode;
|
|
parent.removeChild(result);
|
|
|
|
var newResult = document.createElement("div");
|
|
newResult.id = "result";
|
|
|
|
newResult.appendChild(addResult("1) INNER measurements", false));
|
|
|
|
newResult.appendChild(addResult("innerWidth" , window.innerWidth));
|
|
newResult.appendChild(addResult("innerHeight", window.innerHeight));
|
|
newResult.appendChild(addResult("landscape (iwh)", (window.innerWidth > window.innerHeight).toString()));
|
|
|
|
newResult.appendChild(addResult("<br/>", false));
|
|
newResult.appendChild(addResult("2) INNER measurements", false));
|
|
|
|
newResult.appendChild(addResult("clientWidth" , document.documentElement.clientWidth));
|
|
newResult.appendChild(addResult("clientHeight", document.documentElement.clientHeight));
|
|
newResult.appendChild(addResult("landscape (cwh)", (document.documentElement.clientWidth > document.documentElement.clientHeight).toString()));
|
|
|
|
newResult.appendChild(addResult("<br/>", false));
|
|
newResult.appendChild(addResult("3) INNER measurements", false));
|
|
|
|
newResult.appendChild(addResult("availWidth", window.screen.availWidth));
|
|
newResult.appendChild(addResult("availHeight", window.screen.availHeight));
|
|
newResult.appendChild(addResult("landscape (awh)", (window.screen.availWidth > window.screen.availHeight).toString()));
|
|
|
|
newResult.appendChild(addResult("<br/>", false));
|
|
newResult.appendChild(addResult("4) OUTER measurements", false));
|
|
|
|
newResult.appendChild(addResult("outerWidth" , window.outerWidth));
|
|
newResult.appendChild(addResult("outerHeight", window.outerHeight));
|
|
newResult.appendChild(addResult("landscape (owh)", (window.outerWidth > window.outerHeight).toString()));
|
|
|
|
newResult.appendChild(addResult("<br/>", false));
|
|
newResult.appendChild(addResult("5) OUTER measurements", false));
|
|
|
|
newResult.appendChild(addResult("screen.width" , window.screen.width));
|
|
newResult.appendChild(addResult("screen.height", window.screen.height));
|
|
newResult.appendChild(addResult("landscape (swh)", (window.screen.width > window.screen.height).toString()));
|
|
|
|
parent.appendChild(newResult);
|
|
browserScopeLog();
|
|
}
|
|
|
|
resize();
|
|
|
|
// Manually attach, as to not overwrite existing handler
|
|
if (window.addEventListener) {
|
|
window.addEventListener("resize", onResize, false);
|
|
|
|
} else {
|
|
window.attachEvent("onresize", onResize);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |