PageSourceSearch

https://www.ladrome.fr/wp-content/themes/ladromefr/js/accessibilite.js

js ladrome.fr collected 2026-09-24 19:59:27 UTC 12,325 bytes, 345 lines download raw bytes

1
2//Ajout d'un title sur la page active dans le menu
3var pathname = window.location.pathname;
4jQuery('#main-menu-modal li.active > a.nav-link').prop('title', ' - page active');
5
6
7jQuery('#menu-footer-mentions li.cookieacc a').attr('role', 'button');
8jQuery('#searchform label').html('Rechercher');
9jQuery('#searchform #searchsubmit').val('Rechercher');
10jQuery('#termsearch').attr('placeholder', 'Tapez votre recherche ici...');
11jQuery('#termsearch').attr('title', 'Tapez votre recherche ici...');
12
13jQuery('#menu-footer-mentions li.cookieacc a').keyup(function(e){
14   if(e.keyCode == 32){
15       // user has pressed space
16       window.location = jQuery('#menu-footer-mentions li.cookieacc a').attr('href');
17   }
18});
19
20jQuery( "#actualite-home-sticky a" ).focus(function() {
21});
22
23jQuery('nav').each(function(index, value) {
24	if(jQuery(this).attr('aria-label')=='Posts navigation') {
25		jQuery(this).attr('aria-label', 'Naviguer dans les résultats de recherche');
26	}
27});
28
29jQuery('ul.pagination a.page-link').each(function(index, value) {
30	var num = jQuery(this).text();
31	if(num=='«') {
32		var titre = 'Aller à la page précédente des résultats de recherche';
33	} else if(num=='»') {
34		var titre = 'Aller à la page suivante des résultats de recherche';
35	} else {
36		var titre = 'Aller à la page '+num+' des résultats de recherche';
37	}
38	jQuery(this).prop('title', titre);
39});
40
41jQuery('.dpsp-network-icon-inner svg').attr('aria-hidden', 'true');
42jQuery('.dpsp-network-icon-inner svg').attr('focusable', 'false');
43var btnsocial = jQuery('a.dpsp-network-btn');
44jQuery.each(btnsocial, function (key, value) {
45	
46	if(jQuery(btnsocial[key]).attr('title')=='Share on Facebook') {
47		var titrebtn = 'Partagez sur Facebook'; 
48	} else if(jQuery(btnsocial[key]).attr('title')=='Share on Twitter') {
49		var titrebtn = 'Partagez sur Twitter';
50	} else if(jQuery(btnsocial[key]).attr('title')=='Share on LinkedIn') {
51		var titrebtn = 'Paratagez sur Linkedin';
52	}
53	jQuery(btnsocial[key]).append('<span class="sr-only">'+titrebtn+'</span>');
54});
55jQuery('a.dpsp-network-btn').removeAttr('title');
56jQuery('a.dpsp-network-btn').removeAttr('aria-label');
57document.addEventListener( 'wpcf7submit', function( event ) {
58		setTimeout(function() {
59		
60			var champsinvalid = jQuery('.wpcf7-not-valid');
61			jQuery.each(champsinvalid, function (key, value) {
62				
63				var attid = jQuery(champsinvalid[key]).attr('id');
64				var invalid = attid+'-invalid';
65				jQuery(champsinvalid[key]).attr('aria-describedby', invalid);
66				jQuery(champsinvalid[key]).next().removeAttr('aria-hidden');
67				jQuery(champsinvalid[key]).next().attr('id', invalid);
68				if(key==0) {
69					jQuery(champsinvalid[key]).focus();
70				}
71				
72			});
73			//jQuery('.wpcf7-response-output').remove();
74		}, 500);
75 });
76 
77 jQuery(function() {
78	jQuery('a#gestcookies').keydown(function(e) { 
79		if (e.keyCode == 32)
80		{ 
81			window.location = jQuery(this).attr('href');
82			//jQuery(this).trigger('click'); 
83			//return false; 
84		} 
85	});
86});
87
88//Check
89let check = (e, m, t, c) => { //(element, max, timeout, callback)
90    let i = +m,
91    loop = () => { jQuery(e).length ? c() : --i && setTimeout(() => { loop() }, t) }
92    loop()
93},            
94//Process
95myFunc = () => { 
96jQuery('a.leaflet-control-zoom-in').attr('tabindex', '-1');
97jQuery('a.leaflet-control-zoom-out').attr('tabindex', '-1');
98jQuery('.leaflet-marker-icon').attr('tabindex', '-1');
99jQuery('.leaflet-control-attribution a').attr('tabindex', '-1');
100jQuery('div.leaflet-container').attr('tabindex', '-1'); }
101//Usage
102check("div.leaflet-marker-icon", 30, 500, myFunc);
103
104//RGAA BASE
105jQuery(document).ready(function(){
106    let $link = jQuery('.navbar-nav a');
107    let $linkNoDropdown = jQuery('.navbar-nav li:not(.menu-item-has-children) > a');
108
109
110    $link.attr('aria-hidden', 'true').attr('tabindex', '-1');
111    jQuery('.navbar-nav > li.dropdown > .dropdown-menu a').attr('aria-expanded', 'false');
112    $linkNoDropdown.removeAttr('aria-expanded');
113});
114
115// BURGER
116jQuery(".navbar-light .navbar-toggler").click(function(event) {
117    event.preventDefault();
118
119    jQuery("#ModalNav .navbar-nav > li > a").attr('aria-hidden', 'false').attr('tabindex', '0');
120
121    if(jQuery('.navbar-modal .navbar-nav > li.dropdown.show > .dropdown-menu.show > li.dropdown.show > .dropdown-menu').hasClass('show') && jQuery('.navbar-modal .navbar-nav > li.dropdown.show > .dropdown-menu.show > li.dropdown.show > .dropdown-menu').hasClass('show')) {
122        jQuery('.navbar-modal .navbar-nav > li.dropdown.show > .dropdown-menu.show > li.dropdown.show > .dropdown-menu').removeClass('show');
123        jQuery('.navbar-modal .navbar-nav > li.dropdown.show > .dropdown-menu.show > li').removeClass('show');
124    }
125
126    jQuery('#ModalNav li.dropdown > .dropdown-toggle').parent().addClass('link-menu');
127
128    jQuery("#ModalNav button").attr({'aria-hidden': 'false', 'tabindex': '0'});
129});
130
131
132// LIENS
133jQuery("#ModalNav li > a").click(function(e) {
134    let navTitle = jQuery(this).html();
135	let $parent = jQuery(this).parent();
136
137	$parent.children('div').children('ul').find('.nav-title').remove();
138	$parent.children('div').children('ul').find('.back-menu').remove();
139	$parent.children('div').children('ul').prepend('<div class="nav-title">' + navTitle + '</div>');
140	if(jQuery(window).width() < 1040){
141		$parent.children('div').children('ul').prepend("<button class='back-menu'><span>Retour</span></button>");
142	}
143});
144
145
146// NIVEAU 1
147jQuery("#main-menu-modal > li > a").click(function() {
148    jQuery(".navbar-nav > li .dropdown-menu a").attr('aria-hidden', 'true').attr('tabindex', '-1');
149
150    jQuery(this).siblings('.dropdown-menu').children('ul').children('li').children('a').attr({'aria-hidden': 'false', 'tabindex': '0'});
151    jQuery(this).siblings('.dropdown-menu').children('ul').children('.menu-item-has-children').children('a').attr('aria-expanded', 'false');
152
153    jQuery(this).next('.dropdown-menu.show').find('a').attr('aria-hidden', 'true').attr('tabindex', '-1');
154
155    jQuery('.navbar-modal .navbar-nav > li.dropdown > .dropdown-menu > ul > li.dropdown').removeClass('show');
156	jQuery('.navbar-modal .navbar-nav > li.dropdown > .dropdown-menu > ul > li.dropdown > .dropdown-menu').removeClass('show');
157});
158
159// CLOSE
160jQuery("#ModalNav button.close").click(function() {
161    jQuery("#ModalNav a").attr({'aria-hidden': 'true', 'tabindex': '-1'});
162    jQuery("#ModalNav .menu-item-has-children > a").attr('aria-expanded', 'false');
163    jQuery("#ModalNav button").attr({'aria-hidden': 'true', 'tabindex': '-1'});
164});
165
166document.addEventListener('click', function(event) {
167    if (jQuery("#ModalNav").hasClass('show') && !jQuery(event.target).closest('#ModalNav > header, #ModalNav > #popin_menu > .modal-content').length) {
168        jQuery("#ModalNav a").attr({'aria-hidden': 'true', 'tabindex': '-1'});
169        jQuery("#ModalNav .menu-item-has-children > a").attr('aria-expanded', 'false');
170        jQuery("#ModalNav button").attr({'aria-hidden': 'true', 'tabindex': '-1'});
171    }
172}, true);
173
174// OBSERVER DROPDOWN
175jQuery('.navbar-modal .navbar-nav > li.dropdown > .dropdown-menu').each(function() {
176    const $dropdown = jQuery(this);
177    const dropdown = this; // l'élément DOM natif pour le MutationObserver
178
179    const observer = new MutationObserver(mutations => {
180        mutations.forEach(mutation => {
181            if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
182                const hasShow = $dropdown.hasClass('show');
183
184                if (!hasShow) {
185                    // Le dropdown vient de se fermer
186                    jQuery("#ModalNav .dropdown-menu a").attr({'aria-hidden': 'true', 'tabindex': '-1'});
187                    jQuery("#ModalNav .dropdown-menu .menu-item-has-children > a").attr('aria-expanded', 'false');
188                }
189            }
190        });
191    });
192
193    observer.observe(dropdown, {
194        attributes: true,           // on surveille les attributs
195        attributeFilter: ['class']  // seulement l'attribut "class"
196    });
197});
198
199var getUrlParameter = function getUrlParameter(sParam) {
200    var sPageURL = window.location.search.substring(1),
201        sURLVariables = sPageURL.split('&'),
202        sParameterName,
203        i;
204
205    for (i = 0; i < sURLVariables.length; i++) {
206        sParameterName = sURLVariables[i].split('=');
207
208        if (sParameterName[0] === sParam) {
209            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
210        }
211    }
212    return false;
213};
214
215if(pathname=='/mon-quotidien/education/les-colleges/' || pathname=='/mon-quotidien/education/les-colleges/menu-des-colleges/') {
216	//console.log('Bonne url');
217	var college = getUrlParameter('etablissement');
218	//console.log(college);
219	if(college!='') {
220		var urlmenu = jQuery('iframe#menucollege').attr('src');
221		var urlmenu = urlmenu+'?CHOIX_ETB=1&RNE='+college;
222		jQuery('iframe#menucollege').attr('src', urlmenu);
223		jQuery('iframe#menucollege').attr('src', jQuery('iframe#menucollege').attr('src'));
224	}
225}
226
227//Menu ancre pages
228let i = 1;
229let j = 1;
230jQuery(document).ready(function(){
231	//Ajout data-id et li au menu page
232	jQuery(".flex-pages .page-articles .child-pages h2").each(function() {
233		let nb = i++;
234		let menu = jQuery(this).text();
235		if ( jQuery(this).children().length < 1 ) {
236			jQuery(this).attr("data-id",nb);
237			jQuery('.flex-pages .page-menu .nav-page-menu').prepend("<li class='side-menu'><a href='#"+nb+"'>"+menu+"</a></li>");
238		}
239	});
240
241	//Ajout id aux articles
242	jQuery(".child-pages .page").each(function() {
243		let nb = j++;
244		jQuery(this).attr("id",nb);
245	});
246
247	//Menu ancre sticky
248	jQuery(window).scroll(function (event) {
249		let scroll = jQuery(window).scrollTop();
250		let height = jQuery(document).height();
251		if (scroll >= 610 && scroll<=height-1250 && jQuery(window).width() >= 992) {
252			jQuery('.flex-pages .page-menu .nav-page-menu').addClass('sticky');
253			jQuery('.flex-pages .page-menu .nav-page-menu').removeClass('sticky-op');
254		} else if (scroll>=height-1250) {
255			jQuery('.flex-pages .page-menu .nav-page-menu').addClass('sticky-op');
256		} else {
257			jQuery('.flex-pages .page-menu .nav-page-menu').removeClass('sticky');
258		}
259	});
260
261	//Scroll smooth menu ancre
262	jQuery(".article-complet a[href*=#]").click(function() {
263		let currentHref = jQuery(this).attr('href').split('#');
264		let position = jQuery( '#'+currentHref[1] ).offset();
265		// console.log(jQuery( '#'+currentHref[1] ));
266		jQuery('body, html').animate({scrollTop:position.top-140 }, 500);
267		return false;
268	});
269
270	//Menu current
271	jQuery(function(){
272		jQuery(window).scroll(function(){
273			if (jQuery('.nav-page-menu .side-menu').hasClass("active")) {
274				jQuery('.nav-page-menu .side-menu').removeClass("active");
275			}
276			let scrollTop = jQuery(document).scrollTop();
277			let positions = [];
278
279			//Positions du milieu des articles
280			jQuery('.child-pages .page').each(function(){
281				// console.log(jQuery(this).position().top);
282				jQuery(this).removeClass("active");
283				positions.push({position:jQuery(this).position().top + jQuery(this).outerHeight(true) / 2, element: jQuery(this)});
284				// console.log(scrollTop);
285				// console.log(positions);
286			});
287
288			let getClosest = closest(positions,scrollTop);
289			let idBloc;
290			if (getClosest !== undefined){
291				idBloc = getClosest.attr('id');
292			}
293
294			//Correspondance entre le menu et l'article
295			jQuery('.nav-page-menu .side-menu').each(function(){
296				let hrefValue = jQuery(this).children("a").attr('href');
297
298				if (hrefValue === '#'+idBloc && jQuery(window).width() >= 992) {
299					jQuery(this).children("a[href='#"+idBloc+"']").parent().addClass("active");
300				}
301			});
302		});
303
304		//Fonction qui detecte l'élément le plus proche
305		function closest(array, number) {
306			let num = 0;
307			for (let i = array.length - 1; i >= 0; i--) {
308				if(Math.abs(number - array[i].position) < Math.abs(number - array[num].position)){
309					num = i;
310				}
311			}
312			if (array[num] !== undefined){
313				return array[num].element;
314			}
315		}
316	});
317
318
319	jQuery(".open-menu-from-breadcrumb").click(function() {
320		let page_id = jQuery(this).attr('data-page-id');
321
322		jQuery('.navbar-toggler').trigger('click');
323
324		setTimeout(function(){
325
326			jQuery('.menu-item-page-id-'+page_id)
327				.closest('.dropdown-menu')
328				.closest('li')
329				.find('> a')
330				.trigger('click');
331
332			jQuery('.menu-item-page-id-'+page_id+' > .dropdown-toggle')
333				.trigger('click');
334		}, 200);
335	});
336});
337
338
339
340
341
342
343
344
345

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.