Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
jQuery( function() { gform_initialize_tooltips(); } ); function gform_initialize_tooltips() { var $tooltips = jQuery( '.gf_tooltip' ); if ( ! $tooltips.length ) { return; } $tooltips.tooltip( { show: { effect: 'fadeIn', duration: 200, delay: 100, }, position: { my: 'center bottom', at: 'center-3 top-11', }, tooltipClass: 'arrow-bottom', items: '[aria-label]', content: function () { var content = jQuery( this ).attr( 'aria-label' ); return gform_sanitize_tooltip_html( content ); }, open: function ( event, ui ) { if ( typeof ( event.originalEvent ) === 'undefined' ) { return false; } // set the tooltip offset on reveal based on tip width and offset of trigger to handle dynamic changes in overflow setTimeout( function() { var leftOffset = ( this.getBoundingClientRect().left - ( ( ui.tooltip[0].offsetWidth / 2 ) - 5 ) ).toFixed(3); ui.tooltip.css( 'left', leftOffset + 'px' ); }.bind( this ), 100 ); var $id = ui.tooltip.attr( 'id' ); jQuery( 'div.ui-tooltip' ).not( '#' + $id ).remove(); }, close: function ( event, ui ) { ui.tooltip.hover( function () { jQuery( this ).stop( true ).fadeTo( 400, 1 ); }, function () { jQuery( this ).fadeOut( '500', function () { jQuery( this ).remove(); } ); } ); } } ); } /** * Sanitizes tooltip HTML using a strict allow-list. * * @since 3.0.0 * * @param {string} content The HTML content to sanitize. * * @return {string} */ function gform_sanitize_tooltip_html( content ) { var parser = new DOMParser(); var body = parser.parseFromString( content || '', 'text/html' ).body; var allowedTags = [ 'A', 'B', 'BR', 'CODE', 'DIV', 'EM', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'I', 'P', 'SPAN', 'STRONG' ]; var discardTags = [ 'BUTTON', 'EMBED', 'FORM', 'IFRAME', 'IMG', 'INPUT', 'LINK', 'MATH', 'META', 'OBJECT', 'OPTION', 'SCRIPT', 'SELECT', 'STYLE', 'SVG', 'TEMPLATE', 'TEXTAREA' ]; Array.prototype.slice.call( body.querySelectorAll( '*' ) ).forEach( function( element ) { if ( ! element.parentNode ) { return; } if ( discardTags.indexOf( element.tagName ) !== -1 ) { element.parentNode.removeChild( element ); return; } if ( allowedTags.indexOf( element.tagName ) === -1 ) { while ( element.firstChild ) { element.parentNode.insertBefore( element.firstChild, element ); } element.parentNode.removeChild( element ); return; } gform_sanitize_tooltip_attributes( element ); } ); return body.innerHTML; } /** * Removes unsafe attributes from an allowed tooltip HTML element. * * @since 3.0.0 * * @param {Element} element The element to sanitize. */ function gform_sanitize_tooltip_attributes( element ) { var href = element.getAttribute( 'href' ); var target = element.getAttribute( 'target' ); var title = element.getAttribute( 'title' ); var className = element.getAttribute( 'class' ); var ariaHidden = element.getAttribute( 'aria-hidden' ); var normalizedHref = href ? href.replace( /[\u0000-\u001F\u007F\s]+/g, '' ).toLowerCase() : ''; Array.prototype.slice.call( element.attributes ).forEach( function( attribute ) { element.removeAttribute( attribute.name ); } ); if ( element.tagName === 'A' ) { if ( href && ( normalizedHref.indexOf( '#' ) === 0 || ! /^[a-z][a-z0-9+.-]*:/.test( normalizedHref ) || /^(https?:|mailto:|tel:)/.test( normalizedHref ) ) ) { element.setAttribute( 'href', href ); } target = target ? target.toLowerCase() : ''; if ( target === '_blank' || target === '_self' ) { element.setAttribute( 'target', target ); if ( target === '_blank' ) { element.setAttribute( 'rel', 'noopener' ); } } if ( title ) { element.setAttribute( 'title', title ); } } if ( className ) { element.setAttribute( 'class', className ); } if ( ariaHidden === 'true' || ariaHidden === 'false' ) { element.setAttribute( 'aria-hidden', ariaHidden ); } } /** * Sanitizes tooltip HTML. * * @param {string} content The HTML content to sanitize. * * @return {string} */ function gform_strip_scripts( content ) { return gform_sanitize_tooltip_html( content ); } function gform_system_shows_scrollbars() { var parent = document.createElement("div"); parent.setAttribute("style", "width:30px;height:30px;"); parent.classList.add('scrollbar-test'); var child = document.createElement("div"); child.setAttribute("style", "width:100%;height:40px"); parent.appendChild(child); document.body.appendChild(parent); var scrollbarWidth = 30 - parent.firstChild.clientWidth; document.body.removeChild(parent); return scrollbarWidth ? true : false; }