PageSourceSearch

https://www.e1.ru/health/pharma/static/js/adv/desktopFullscreen.js?v=8a483e44

js e1.ru collected 2026-09-24 06:23:39 UTC 4,511 bytes, 145 lines download raw bytes

1(function () {
2    var DESKTOP_FULLSCREEN_ADUNIT_NAME = 'fullscreen';
3    var DESKTOP_FULLSCREEN_CONTAINER_ID = 'fullscreen';
4    var DESKTOP_FULLSCREEN_STORAGE_KEY = 'ump_desktop_fullscreen_hidden_until';
5    var DESKTOP_FULLSCREEN_HIDE_DURATION_MS = 5 * 60 * 1000;
6    var hasRenderedDesktopFullscreen = false;
7    var fullscreenSlot = null;
8
9    function canShowDesktopFullscreen() {
10        var hiddenUntil;
11
12        try {
13            hiddenUntil = Number(localStorage.getItem(DESKTOP_FULLSCREEN_STORAGE_KEY));
14
15            if (isNaN(hiddenUntil) || hiddenUntil <= Date.now()) {
16                localStorage.removeItem(DESKTOP_FULLSCREEN_STORAGE_KEY);
17
18                return true;
19            }
20
21            return false;
22        } catch (error) {
23           window.console.warn('[E1 fullscreen] Failed to read localStorage', error);
24
25            return false;
26        }
27    }
28
29    function markDesktopFullscreenDisplayed() {
30        try {
31            localStorage.setItem(
32                DESKTOP_FULLSCREEN_STORAGE_KEY,
33                String(Date.now() + DESKTOP_FULLSCREEN_HIDE_DURATION_MS)
34            );
35        } catch (error) {
36           window.console.warn('[E1 fullscreen] Failed to write localStorage', error);
37        }
38    }
39
40    function getContainer() {
41        var container = document.getElementById(DESKTOP_FULLSCREEN_CONTAINER_ID);
42
43        if (container) {
44            return container;
45        }
46
47        if (!document.body) {
48           window.console.warn('[E1 fullscreen] document.body is not available');
49
50            return null;
51        }
52
53        container = document.createElement('div');
54        container.id = DESKTOP_FULLSCREEN_CONTAINER_ID;
55        document.body.appendChild(container);
56
57        return container;
58    }
59
60    function renderDesktopFullscreen(creativeManager) {
61        var container;
62
63        if (hasRenderedDesktopFullscreen || !canShowDesktopFullscreen()) {
64            return;
65        }
66
67        if (!creativeManager || typeof creativeManager.createSlot !== 'function') {
68           window.console.warn('[E1 fullscreen] createSlot is not available on creativeManager');
69
70            return;
71        }
72
73        hasRenderedDesktopFullscreen = true;
74        container = getContainer();
75
76        if (!container) {
77            hasRenderedDesktopFullscreen = false;
78
79            return;
80        }
81
82        creativeManager.ready.then(function () {
83            return creativeManager.createSlot({
84                container: container,
85                adunit: DESKTOP_FULLSCREEN_ADUNIT_NAME,
86                params: {
87                    priority: 1,
88                    type: 'fullscreen',
89                    platform: 'desktop'
90                }
91            });
92        }).then(function (slot) {
93            if (!slot) {
94               window.console.warn('[E1 fullscreen] Failed to create fullscreen slot');
95                hasRenderedDesktopFullscreen = false;
96
97                return;
98            }
99
100            fullscreenSlot = slot;
101
102            if (typeof slot.on === 'function') {
103                slot.on('display', function () {
104                    markDesktopFullscreenDisplayed();
105                });
106                slot.on('error', function () {
107                    hasRenderedDesktopFullscreen = false;
108                });
109                slot.on('stub', function () {
110                    hasRenderedDesktopFullscreen = false;
111                });
112            }
113
114            return slot.refresh();
115        }).catch(function (error) {
116           window.console.warn('[E1 fullscreen] Failed to render fullscreen', error);
117            hasRenderedDesktopFullscreen = false;
118        }).finally(function () {
119            if (!hasRenderedDesktopFullscreen) {
120                if (
121                    fullscreenSlot
122                    && typeof creativeManager.destroySlot === 'function'
123                ) {
124                    creativeManager.destroySlot(fullscreenSlot);
125                    fullscreenSlot = null;
126                }
127
128                container = document.getElementById(DESKTOP_FULLSCREEN_CONTAINER_ID);
129                if (container && container.parentNode) {
130                    container.parentNode.removeChild(container);
131                }
132            }
133        });
134    }
135
136    function initDesktopFullscreen() {
137        window.onHSMCreativeManagerReady.push(function (creativeManager) {
138            renderDesktopFullscreen(creativeManager);
139        });
140    }
141
142    if (!window.isMobile) {
143        initDesktopFullscreen();
144    }
145})();

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.