PageSourceSearch

https://marli.de/javascript/matchMedia.js

js marli.de collected 2026-10-04 13:31:58 UTC 1,492 bytes, 46 lines download raw bytes

vendor: 1,492 bytes, lines 1-46
1/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
2
3window.matchMedia || (window.matchMedia = function() {
4	"use strict";
5
6	// For browsers that support matchMedium api such as IE 9 and webkit
7	var styleMedia = (window.styleMedia || window.media);
8
9	// For those that don't support matchMedium
10	if (!styleMedia) {
11		var style       = document.createElement('style'),
12		 script      = document.getElementsByTagName('script')[0],
13		 info        = null;
14
15		style.type  = 'text/css';
16		style.id    = 'matchmediajs-test';
17
18		script.parentNode.insertBefore(style, script);
19
20		// 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
21		info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
22
23		styleMedia = {
24			matchMedium: function(media) {
25				var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
26
27				// 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
28				if (style.styleSheet) {
29					style.styleSheet.cssText = text;
30				} else {
31					style.textContent = text;
32				}
33
34				// Test if media query is true or false
35				return info.width === '1px';
36			}
37		};
38	}
39
40	return function(media) {
41		return {
42			matches: styleMedia.matchMedium(media || 'all'),
43			media: media || 'all'
44		};
45	};
46}());

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.