TweenMax.js
1 year ago
anime.js
1 year ago
flipster.js
1 year ago
headroom.js
1 year ago
iscroll.js
1 year ago
isotope.js
1 year ago
jquery-countdown.js
1 year ago
jquery-mousewheel.js
1 year ago
jquery-slimscroll.js
1 year ago
lottie.js
1 year ago
luxon.js
1 year ago
markerclusterer.js
1 year ago
modal.js
1 year ago
motionpath.js
1 year ago
pa-gsap.js
1 year ago
pa-scrolldir.js
1 year ago
premium-addons.js
1 year ago
premium-banner.js
1 year ago
premium-blog.js
1 year ago
premium-button.js
1 year ago
premium-carousel-widget.js
1 year ago
premium-contact-form.js
1 year ago
premium-countdown-timer.js
1 year ago
premium-counter.js
1 year ago
premium-dis-conditions.js
1 year ago
premium-dual-header.js
1 year ago
premium-eq-height.js
1 year ago
premium-fancy-text.js
1 year ago
premium-floating-effects.js
1 year ago
premium-global-tooltips.js
1 year ago
premium-icon-list.js
1 year ago
premium-image-button.js
1 year ago
premium-image-scroll.js
1 year ago
premium-img-gallery.js
1 year ago
premium-maps.js
1 year ago
premium-media-wheel.js
1 year ago
premium-mini-cart.js
1 year ago
premium-mobile-menu.js
1 year ago
premium-modal-box.js
1 year ago
premium-nav-menu.js
1 year ago
premium-notifications.js
1 year ago
premium-person.js
1 year ago
premium-pinterest-feed.js
1 year ago
premium-post-ticker.js
1 year ago
premium-progressbar.js
1 year ago
premium-search-form.js
1 year ago
premium-shape-divider.js
1 year ago
premium-svg-drawer.js
1 year ago
premium-tcloud.js
1 year ago
premium-testimonials.js
1 year ago
premium-textual-showcase.js
1 year ago
premium-tiktok-feed.js
1 year ago
premium-title.js
1 year ago
premium-video-box.js
1 year ago
premium-vscroll.js
1 year ago
premium-weather.js
1 year ago
premium-woo-categories.js
1 year ago
premium-woo-cta.js
1 year ago
premium-woo-products.js
1 year ago
premium-world-clock.js
1 year ago
premium-wrapper-link.js
1 year ago
prettyPhoto.js
1 year ago
scrollTrigger.js
1 year ago
slick.js
1 year ago
tooltipster.js
1 year ago
typed.js
1 year ago
universal-tilt.js
1 year ago
vticker.js
1 year ago
premium-wrapper-link.js
56 lines
| 1 | (function ($) { |
| 2 | $(window).on('elementor/frontend/init', function () { |
| 3 | |
| 4 | var premiumWrapperLinkHandler = function ($scope) { |
| 5 | |
| 6 | if (!$scope.hasClass('premium-wrapper-link-yes')) |
| 7 | return; |
| 8 | |
| 9 | var settings = $scope.data('premium-element-link'); |
| 10 | |
| 11 | if (!settings) |
| 12 | return; |
| 13 | |
| 14 | if (!isURL(settings.href)) |
| 15 | return; |
| 16 | |
| 17 | function isURL(str) { |
| 18 | // Regular expression for URL validation, supporting Unicode characters |
| 19 | var urlPattern = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.-]{2,})([\/\w \u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF%.-]*)*(\/)?(#\w[-\w]*)?$/i; |
| 20 | |
| 21 | // Test the string against the regular expression |
| 22 | return urlPattern.test(str); |
| 23 | } |
| 24 | |
| 25 | $scope.on('click.onWrapperLink', function () { |
| 26 | |
| 27 | var id = $scope.data('id'), |
| 28 | anchor = document.createElement('a'), |
| 29 | anchorReal, |
| 30 | timeout; |
| 31 | |
| 32 | anchor.id = 'premium-wrapper-link-' + id; |
| 33 | anchor.href = settings.href; |
| 34 | anchor.target = settings.type === 'url' ? settings.link.is_external ? '_blank' : '_self' : ''; |
| 35 | anchor.rel = settings.type === 'url' ? settings.link.nofollow ? 'nofollow noreferer' : '' : ''; |
| 36 | anchor.style.display = 'none'; |
| 37 | |
| 38 | document.body.appendChild(anchor); |
| 39 | |
| 40 | anchorReal = document.getElementById(anchor.id); |
| 41 | anchorReal.click(); |
| 42 | |
| 43 | timeout = setTimeout(function () { |
| 44 | anchorReal.remove(); |
| 45 | console.log(anchorReal); |
| 46 | clearTimeout(timeout); |
| 47 | }); |
| 48 | }); |
| 49 | |
| 50 | }; |
| 51 | |
| 52 | elementorFrontend.hooks.addAction("frontend/element_ready/global", premiumWrapperLinkHandler); |
| 53 | |
| 54 | |
| 55 | }); |
| 56 | })(jQuery); |