139 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			139 lines
		
	
	
	
		
			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>
							 |