PageSourceSearch

https://gdh-virtual-tours-02.vercel.app/

html gdh-virtual-tours-02.vercel.app collected 2026-10-03 06:59:27 UTC 14,838 bytes, 338 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fr">
3<head>
4    <title>CHALET LES BOIS</title>
5    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6    <meta name="viewport" id="metaViewport" content="user-scalable=no, initial-scale=1, width=device-width, viewport-fit=cover" data-tdv-general-scale="0.5"/>
7    <meta name="apple-mobile-web-app-capable" content="yes"/>
8    <meta name="apple-mobile-web-app-status-bar-style" content="default">
9    <link rel="preload" href="locale/fr.txt?v=1641288413170" as="fetch" crossorigin="anonymous"/>
10	<link rel="preload" href="script.js?v=1641288413170" as="script"/>
11	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/r/3/0_0.jpg?v=1641288413170" as="image"/>
12	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/l/3/0_0.jpg?v=1641288413170" as="image"/>
13	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/u/3/0_0.jpg?v=1641288413170" as="image"/>
14	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/d/3/0_0.jpg?v=1641288413170" as="image"/>
15	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/f/3/0_0.jpg?v=1641288413170" as="image"/>
16	<link rel="preload" href="media/panorama_71C0A5AB_6D35_635C_41D6_068F5495EB51_0/b/3/0_0.jpg?v=1641288413170" as="image"/>
17	<meta property="og:title" content="CHALET LES BOIS" />
18	<meta property="og:type" content="website" />
19	<meta property="og:description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et l’accueil personnalisé. Location de vacances toute l’année à Chamonix." />
20	<meta property="og:url" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/index.htm" />
21	<meta property="og:image" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg" />
22	<meta property="og:image:width" content="1200" />
23	<meta property="og:image:height" content="630" />
24	<meta property="fb:app_id" content="817622095004141" />
25	<link rel="image_src" href="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg?v=1641288413170">
26	<meta property="og:locale" content="fr"/>
27	<meta property="og:locale:alternate" content="en"/>
28	<meta name="twitter:card" content="summary_large_image"/>
29	<meta name="twitter:title" content="CHALET LES BOIS"/>
30	<meta name="twitter:description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et l’accueil personnalisé. Location de vacances toute l’année à Chamonix."/>
31	<meta name="twitter:url" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/index.htm"/>
32	<meta name="twitter:image:src" content="https://www.virtualityjoss.com/wp-content/uploads/visites/grangesdenhaut/chaletdesbois/socialThumbnail.jpg?v=1641288413170"/>
33	<meta name="twitter:image:width" content="1200"/>
34	<meta name="twitter:image:height" content="630"/>
35	<meta name="description" content="Pour les séjours en famille ou entre amis, de 2 à 7 personnes, nos 3 appartements situés dans la Vallée de Chamonix sur le Domaine des Planards seront le logement idéal pour vos vacances à la montagne. Ils ont tous des ambiances différentes mais des points communs qui sont le bien être, le confort, la vue et l’accueil personnalisé. Location de vacances toute l’année à Chamonix."/>
36	<meta name="theme-color" content="#FFFFFF"/>
37    
37<script src="lib/tdvplayer.js?v=1641288413170"></script>
37
38    
38<script src="script.js?v=1641288413170"></script>
38
39    
39<script type="text/javascript">
40        var tour;
41        var devicesUrl = {"ipad":"script_general.js?v=1641288413170","mobile":"script_mobile.js?v=1641288413170","general":"script_general.js?v=1641288413170"};
42
43        (function()
44        {
45            var deviceType = ['general'];
46            if(TDV.PlayerAPI.mobile)
47                deviceType.unshift('mobile');
48            if(TDV.PlayerAPI.device == TDV.PlayerAPI.DEVICE_IPAD)
49                deviceType.unshift('ipad');
50            var url;
51            for(var i=0; i<deviceType.length; ++i) {
52                var d = deviceType[i];
53                if(d in devicesUrl) {
54                    url = devicesUrl[d];
55                    break;
56                }
57            }
58            if(typeof url == "object") {
59                var orient = TDV.PlayerAPI.getOrientation();
60                if(orient in url) {
61                    url = url[orient];
62                }
63            }
64            var link = document.createElement('link');
65            link.rel = 'preload';
66            link.href = url;
67            link.as = 'script';
68            var el = document.getElementsByTagName('script')[0];
69            el.parentNode.insertBefore(link, el);
70        })();
71
72        function loadTour()
73        {
74            if(tour) return;
75
76            if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) {
77                var preloadContainer = document.getElementById('preloadContainer');
78                if(preloadContainer)
79                    document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor;
80            }
81
82            var settings = new TDV.PlayerSettings();
83            settings.set(TDV.PlayerSettings.CONTAINER, document.getElementById('viewer'));
84            settings.set(TDV.PlayerSettings.WEBVR_POLYFILL_URL, 'lib/WebVRPolyfill.js?v=1641288413170');
85            settings.set(TDV.PlayerSettings.HLS_URL, 'lib/Hls.js?v=1641288413170');
86            settings.set(TDV.PlayerSettings.QUERY_STRING_PARAMETERS, 'v=1641288413170');
87
88            tour = new TDV.Tour(settings, devicesUrl);
89            tour.bind(TDV.Tour.EVENT_TOUR_INITIALIZED, onVirtualTourInit);
90            tour.bind(TDV.Tour.EVENT_TOUR_LOADED, onVirtualTourLoaded);
91            tour.bind(TDV.Tour.EVENT_TOUR_ENDED, onVirtualTourEnded);
92            tour.load();
93        }
94
95        function pauseTour()
96        {
97            if(!tour)
98                return;
99
100            tour.pause();
101        }
102
103        function resumeTour()
104        {
105            if(!tour)
106                return;
107
108            tour.resume();
109        }
110
111        function onVirtualTourInit()
112        {
113            var updateTexts = function() {
114                document.title = this.trans("tour.name")
115            };
116
117            tour.locManager.bind(TDV.Tour.LocaleManager.EVENT_LOCALE_CHANGED, updateTexts.bind(tour.locManager));
118            
119            if (tour.player.cookiesEnabled)
120                enableCookies();
121            else
122                tour.player.bind('enableCookies', enableCookies);
123        }
124
125        function onVirtualTourLoaded()
126        {
127            disposePreloader();
128        }
129
130        function onVirtualTourEnded()
131        {
132
133        }
134
135        function enableCookies()
136        {
137            
138        }
139
140        function setMediaByIndex(index) {
141            if(!tour)
142                return;
143
144            tour.setMediaByIndex(index);
145        }
146
147        function setMediaByName(name)
148        {
149            if(!tour)
150                return;
151
152            tour.setMediaByName(name);
153        }
154
155        function showPreloader()
156        {
157            var preloadContainer = document.getElementById('preloadContainer');
158            if(preloadContainer != undefined)
159                preloadContainer.style.opacity = 1;
160        }
161
162        function disposePreloader()
163        {
164            var preloadContainer = document.getElementById('preloadContainer');
165            if(preloadContainer == undefined)
166                return;
167
168            var transitionEndName = transitionEndEventName();
169            if(transitionEndName)
170            {
171                preloadContainer.addEventListener(transitionEndName, hide, false);
172                preloadContainer.style.opacity = 0;
173                setTimeout(hide, 500); //Force hide. Some cases the transitionend event isn't dispatched with an iFrame.
174            }
175            else
176            {
177                hide();
178            }
179
180            function hide()
181            {
182                //DisposePreloader
183                document.body.style.backgroundColor = window.getComputedStyle(preloadContainer).backgroundColor;
184                preloadContainer.style.visibility = 'hidden';
185                preloadContainer.style.display = 'none';
186                var videoList = preloadContainer.getElementsByTagName("video");
187                for(var i=0; i<videoList.length; ++i)
188                {
189                    var video = videoList[i];
190                    video.pause();
191                    while (video.children.length)
192                        video.removeChild(video.children[0]);
193                }
194            }
195
196            function transitionEndEventName () {
197                var el = document.createElement('div');
198                var transitions = {
199                        'transition':'transitionend',
200                        'OTransition':'otransitionend',
201                        'MozTransition':'transitionend',
202                        'WebkitTransition':'webkitTransitionEnd'
203                    };
204
205                var t;
206                for (t in transitions) {
207                    if (el.style[t] !== undefined) {
208                        return transitions[t];
209                    }
210                }
211
212                return undefined;
213            }
214        }
215
216        function onBodyClick(){
217            document.body.removeEventListener("click", onBodyClick);
218            document.body.removeEventListener("touchend", onBodyClick);
219            
220        }
221
222        function onLoad() {
223            if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent))
224            {
225                var onOrientationChange = function()
226                {
227                    document.documentElement.style.height = 'initial';
228                    Array.from(document.querySelectorAll('.fill-viewport')).forEach(function(element)
229                    {
230                        element.classList.toggle('landscape-right', window.orientation == -90);
231                        element.classList.toggle('landscape-left', window.orientation == 90);
232                    });
233                    setTimeout(function()
234                    {
235                        document.documentElement.style.height = '100%';
236                    }, 500);
237                };
238                window.addEventListener('orientationchange', onOrientationChange);
239                onOrientationChange();
240            }
241
242            var params = getParams(location.search.substr(1));
243            if(params.hasOwnProperty("skip-loading"))
244            {
245                loadTour();
246                disposePreloader();
247                return;
248            }
249
250            if (isOVRWeb()){
251                showPreloader();
252                loadTour();
253                return;
254            }
255
256            showPreloader();
257			loadTour();
258        }
259
260        function playVideo(video) {
261            function isSafariDesktopV11orGreater() {
262                return /^((?!chrome|android|crios|ipad|iphone).)*safari/i.test(navigator.userAgent) && parseFloat(/Version\/([0-9]+\.[0-9]+)/i.exec(navigator.userAgent)[1]) >= 11;
263            }
264
265            function hasAudio (video) {
266                return video.mozHasAudio ||
267                       Boolean(video.webkitAudioDecodedByteCount) ||
268                       Boolean(video.audioTracks && video.audioTracks.length);
269            }
270
271            function detectUserAction() {
272                var onVideoClick = function(e) {
273                    if(video.paused) {
274                        video.play();
275                    }
276                    video.muted = false;
277                    if(hasAudio(video))
278                    {
279                        e.stopPropagation();
280                        e.stopImmediatePropagation();
281                        e.preventDefault();
282                    }
283
284                    video.removeEventListener('click', onVideoClick);
285                    video.removeEventListener('touchend', onVideoClick);
286                };
287                video.addEventListener("click", onVideoClick);
288                video.addEventListener("touchend", onVideoClick);
289            }
290
291            if (isSafariDesktopV11orGreater()) {
292                video.muted = true;
293                video.play();
294            } else {
295                var canPlay = true;
296                var promise = video.play();
297                if (promise) {
298                    promise.catch(function() {
299                        video.muted = true;
300                        video.play();
301                        detectUserAction();
302                    });
303                } else {
304                    canPlay = false;
305                }
306
307                if (!canPlay || video.muted) {
308                    detectUserAction();
309                }
310            }
311        }
312
313        function isOVRWeb(){
314            return window.location.hash.substring(1).split('&').indexOf('ovrweb') > -1;
315        }
316
317        function getParams(params) {
318            var queryDict = {}; params.split("&").forEach(function(item) {var k = item.split("=")[0], v = decodeURIComponent(item.split("=")[1]);queryDict[k.toLowerCase()] = v});
319            return queryDict;
320        }
321
322        document.addEventListener('DOMContentLoaded', onLoad);
323    </script>
323
324    <style type="text/css">
325        html, body { height:100%; width:100%; height:100vh; width:100vw; margin:0; padding:0; overflow:hidden; }
326        .fill-viewport { position:fixed; top:0; left:0; right:0; bottom:0; padding:0; margin:0; overflow: hidden; }
327        .fill-viewport.landscape-left { left: env(safe-area-inset-left); }
328		.fill-viewport.landscape-right { right: env(safe-area-inset-right); }
329        #viewer { z-index:1; }
330        
331    </style>
332    <link rel="stylesheet" href="fonts.css?v=1641288413170">
333</head>
334<body>
335    
336    <div id="viewer" class="fill-viewport"></div>
337</body>
338</html>

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.