Understøtter VPN Tracker SSL VPN? - KH1655

Ofte stillede spørgsmål

Understøtter VPN Tracker SSL VPN?
 
Nogle VPN-udbydere tilbyder "SSL VPN" som et alternativ til IPsec VPN. SSL VPN er ikke en enkelt standard, men hver udbyder har sin egen specifikke type "SSL VPN". VPN Tracker 365 tilbyder fuld understøttelse kun for SonicWALL SSL-forbindelser, men vi planlægger at understøtte nogle af de andre populære SSL VPN-varianter i fremtiden. Hvis du har en SSL VPN-forbindelse, som du gerne vil have, at vi understøtter, bedes du { element.addEventListener("mousedown", function(event) { if (event.detail > 1) { event.preventDefault(); } }); }); } function refreshCurrentLang(lang) { const url = new URL(window.location.href); url.searchParams.set('lang', lang); url.pathname = url.pathname.replace('/' + initialLang + '/faq', '/' + lang + '/faq'); url.pathname = url.pathname.replace('/us/faq', '/' + lang + '/faq'); url.pathname = url.pathname.replace('/en/faq', '/' + lang + '/faq'); window.history.pushState({}, '', url); window.location.reload(); } function resetFilters() { articleId = null; searchTerm = null; document.getElementById('faq-search').value = ''; } function setupSearchHandler() { const searchInput = document.getElementById('faq-search'); const searchIcon = document.querySelector('.search-icon'); if (!searchInput || !searchIcon) { return; } searchIcon.addEventListener('click', function() { searchInput.focus(); // Focus input when icon is clicked }); searchInput.addEventListener('input', function() { searchTerm = searchInput.value.toLowerCase().trim(); updateFilters(); }); if (initialSearchTerm) { searchInput.value = initialSearchTerm; searchTerm = initialSearchTerm.toLowerCase().trim(); updateFilters(); } } function toggeProductArticleFilter(id) { if (articleId == id) { articleId = null; } else { articleId = id; } updateFilters(); } function updateFilters() { refreshProductArticleFilter(); refreshSearchFilter(); } function refreshProductArticleFilter() { const faqItems = document.querySelectorAll('.faq-item'); if (faqItems.length == 0) { return; } let mode = 'filter'; if (articleId == null) { const productArticles = document.querySelectorAll('.faq-product-article-item'); productArticles.forEach(item => { item.classList.remove('selected'); }); mode = 'reset'; } else { const productArticle = document.getElementById('product-article-' + articleId); if (!productArticle) { return; } productArticle.classList.add('selected'); const productArticles = document.querySelectorAll('.faq-product-article-item'); productArticles.forEach(item => { // only if not the current one if (item.id != productArticle.id) { item.classList.remove('selected'); } }); } faqItems.forEach(item => { let articles = item.getAttribute('data-product-articles'); if (!articles) { articles = ""; } articleTest = articles.split(',').filter(function(e) { return e.trim() != ''; }); const artikels = articles.split(','); item.style.display = (mode == 'reset' || articleTest.length == 0 || artikels.includes(articleId)) ? '' : 'none'; }); } function refreshSearchFilter() { if (!searchTerm) { return; } const searchWords = searchTerm.split(/\s+/); const faqItems = document.querySelectorAll('.faq-item'); faqItems.forEach(item => { const rawData = item.getAttribute('data-search-info'); const searchData = decodeHtmlEntities(rawData).toLowerCase(); const matchesAll = searchWords.every(word => searchData.includes(word)); item.style.display = (matchesAll && item.style.display != 'none') ? '' : 'none'; }); } function decodeHtmlEntities(encodedString) { const textArea = document.createElement('textarea'); textArea.innerHTML = encodedString; return textArea.value; } function jumpToInitial(faqId) { if (faqId) { const faqItem = document.getElementById('faq-item-' + faqId); if (faqItem) { setTimeout(() => { faqItem.scrollIntoView({ behavior: 'instant', block: 'start', inline: 'nearest' }); }, 1); } } } function openInitialFaq(faqId) { if (!faqId) { return; } let faqElement = document.getElementById("faq-answer-" + faqId); if (faqElement) { faqElement.classList.add("show"); } let faqItemPreloaded = document.getElementById('faq-answer-preloaded-' + faqId); if (faqItemPreloaded) { faqItemPreloaded.classList.remove('collapse'); lastFAQIdOpened = faqId; } } var lastFAQIdOpened = null; function toggleFaq(faqId) { let faqElement = document.getElementById("faq-answer-" + faqId); let contentContainer = document.getElementById('faq-answer-content-' + faqId); if (faqElement.classList.contains("show")) { faqElement.classList.remove("show"); let faqItemPreloaded = document.getElementById('faq-answer-preloaded-' + faqId); if (faqItemPreloaded) { faqItemPreloaded.classList.add('collapse'); } if (lastFAQIdOpened == faqId) { lastFAQIdOpened = null; } } else { faqElement.classList.add("show"); let faqItemPreloaded = document.getElementById('faq-answer-preloaded-' + faqId); if (faqItemPreloaded) { faqItemPreloaded.classList.remove('collapse'); } faqDisplayPreActions(faqId); if (lastFAQIdOpened == faqId) { return false; } lastFAQIdOpened = faqId; Livewire.dispatch("loadFAQDetails", { faqId: faqId }); // setTimeout(() => { // Livewire.dispatch("loadFAQDetails", { // faqId: faqId // }); // }, 1); } } window.addEventListener('faqLoaded', function(event) { let faqId = event.detail?.faqId; let content = event.detail?.content; let contentContainer = document.getElementById('faq-answer-content-' + faqId); if (content && contentContainer) { let faqElement = document.getElementById("faq-answer-" + faqId); if (!faqElement.classList.contains("show")) { faqElement.classList.add("show"); } contentContainer.innerHTML = content; let faqItemPreloaded = document.getElementById('faq-answer-preloaded-' + faqId); if (faqItemPreloaded) { faqItemPreloaded.classList.add('collapse'); } faqDisplayPostActions(faqId); } }); function generateSlugLink(faqId, faqItem) { const slug = faqItem.getAttribute('data-slug'); const question = faqItem.querySelector('.faq-question').innerText; const productid = faqItem.getAttribute('data-productid'); return `/da/faq/${faqId}/${productid}/${slug}/KH${faqId}?identifier=equinux.com`; } function faqDisplayPreActions(faqId) { const faqItem = document.getElementById('faq-item-' + faqId); if (!faqItem) { return; } const newUrl = generateSlugLink(faqId, faqItem); history.pushState(null, '', newUrl); } function faqDisplayPostActions(faqId) { const faqItem = document.getElementById('faq-item-' + faqId); if (!faqItem) { return; } // update all the meta info updateFAQMetaInfo(faqId); // register new handlers setTimeout(() => { updateFilters(); setupRatingHandlers(); }, 1); } function updateFAQMetaInfo(faqId) { const faqItem = document.getElementById('faq-item-' + faqId); if (!faqItem) { return; } // fetch the question and answer aswell as the data-search-info const question = faqItem.querySelector('.faq-question').innerText; const answer = faqItem.querySelector('.faq-answer-content').innerText; const searchInfo = faqItem.getAttribute('data-search-info'); // remove all html tags and newlines from the question and answer const cleanQuestion = question.replace(/<\/?[^>]+(>|$)/g, "").replace(/\n/g, " "); const cleanAnswer = answer.replace(/<\/?[^>]+(>|$)/g, "").replace(/\n/g, " "); // update the canonical URL const hostname = window.location.hostname; const protocol = window.location.protocol; const port = window.location.port ? ':' + window.location.port : ''; const newUrl = generateSlugLink(faqId, faqItem); const canonicalUrl = `${protocol}//${hostname}${port}${newUrl}`; const canonicalLink = document.querySelector('link[rel="canonical"]'); if (canonicalLink) { canonicalLink.setAttribute('href', canonicalUrl); } else { const newCanonicalLink = document.createElement('link'); newCanonicalLink.setAttribute('rel', 'canonical'); newCanonicalLink.setAttribute('href', canonicalUrl); document.head.appendChild(newCanonicalLink); } // also update the document title const title = document.querySelector('title'); if (title) { title.innerText = cleanQuestion; } // update the meta title const metaTitle = document.querySelector('meta[name="title"]'); if (metaTitle) { metaTitle.setAttribute('content', cleanQuestion); } else { const newMetaTitle = document.createElement('meta'); newMetaTitle.setAttribute('name', 'title'); newMetaTitle.setAttribute('content', cleanQuestion); document.head.appendChild(newMetaTitle); } // update the meta description const metaDescription = document.querySelector('meta[name="description"]'); if (metaDescription) { metaDescription.setAttribute('content', cleanQuestion + ' ' + cleanAnswer); } // update the meta keywords const metaKeywords = document.querySelector('meta[name="keywords"]'); if (metaKeywords) { metaKeywords.setAttribute('content', searchInfo); } // update/create the meta og:title const metaOgTitle = document.querySelector('meta[property="og:title"]'); if (metaOgTitle) { metaOgTitle.setAttribute('content', cleanQuestion); } else { const newMetaOgTitle = document.createElement('meta'); newMetaOgTitle.setAttribute('property', 'og:title'); newMetaOgTitle.setAttribute('content', cleanQuestion); document.head.appendChild(newMetaOgTitle); } // update/create the meta og:description const metaOgDescription = document.querySelector('meta[property="og:description"]'); if (metaOgDescription) { metaOgDescription.setAttribute('content', cleanQuestion + ' ' + cleanAnswer); } // update/create the meta og:url const metaOgUrl = document.querySelector('meta[property="og:url"]'); if (metaOgUrl) { metaOgUrl.setAttribute('content', canonicalUrl); } else { const newMetaOgUrl = document.createElement('meta'); newMetaOgUrl.setAttribute('property', 'og:url'); newMetaOgUrl.setAttribute('content', canonicalUrl); document.head.appendChild(newMetaOgUrl); } } let currentProductSelection = null; function setupProductObserver() { const productDropdown = document.getElementById('productDropdown'); if (productDropdown) { productDropdown.addEventListener('click', function() { const dropdownItems = document.querySelectorAll('.dropdown-item'); dropdownItems.forEach(item => { item.addEventListener('click', function() { let newProductSelection = this.textContent.trim(); if (newProductSelection != currentProductSelection) { currentProductSelection = newProductSelection; } resetFilters(); }); }); }); } } function isElementInViewport(el) { const rect = el.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); } function setupRatingHandlers() { document.querySelectorAll('.rating-star').forEach(star => { if (star.classList.contains('disabled')) { return; } star.addEventListener('mouseover', function() { const faqid = this.getAttribute('data-faq-id'); const rating = parseInt(this.getAttribute('data-rating')); document.querySelectorAll(`.rating-star[data-faq-id="${faqid}"]`).forEach(s => { if (parseInt(s.getAttribute('data-rating')) <= rating) { s.classList.remove('waiting'); s.classList.add('selected'); } else { s.classList.remove('selected'); s.classList.add('waiting'); } }); }); star.addEventListener('mouseout', function() { const faqid = this.getAttribute('data-faq-id'); document.querySelectorAll(`.rating-star[data-faq-id="${faqid}"]`).forEach(s => { if (!s.classList.contains('disabled')) { s.classList.remove('selected'); s.classList.add('waiting'); } }); }); }); document.querySelectorAll('.rating-star').forEach(button => { button.addEventListener('click', function(event) { event.preventDefault(); const faqId = this.getAttribute('data-faq-id'); const rating = this.getAttribute('data-rating'); const url = `/rate/stars/faq/${faqId}/0/da/${rating}`; const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrfToken, 'X-Requested-With': 'XMLHttpRequest' }, // body: JSON.stringify({ // rating: rating // }) }) .then(response => response.json()) .then(data => { if (data && data === 1) { document.querySelectorAll(`.rating-star[data-faq-id="${faqId}"]`).forEach(btn => { btn.classList.remove('waiting'); btn.classList.add('disabled'); if (parseInt(btn.getAttribute('data-rating')) <= rating) { btn.classList.add('selected'); } else { btn.classList.add('inactive'); } }); // this.classList.add('selected'); } }) .catch(data => console.error('Error:', data)); }); }); document.querySelectorAll('.helpful-btn').forEach(button => { button.addEventListener('click', function(event) { event.preventDefault(); const faqId = this.getAttribute('data-faq-id'); const helpful = this.getAttribute('data-helpful'); const url = `/rate/helpful/faq/${faqId}/0/da/${helpful}`; const csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': csrfToken, 'X-Requested-With': 'XMLHttpRequest' }, // body: JSON.stringify({ // helpful: helpful // }) }) .then(response => response.json()) .then(data => { if (data && data === 1) { document.querySelectorAll(`.helpful-btn[data-faq-id="${faqId}"]`).forEach(btn => { btn.classList.remove('waiting'); btn.classList.add('inactive'); btn.classList.add('disabled'); }); this.classList.add('selected'); } }) .catch(data => console.error('Error:', data)); }); }); }