Help
RSS
API
Feed
Maltego
Contact
Domain > davidhmorton.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-11-27
3.166.181.88
(
ClassC
)
2025-05-07
3.163.80.91
(
ClassC
)
2025-08-29
13.225.205.85
(
ClassC
)
2025-12-16
3.169.173.7
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Tue, 16 Dec 2025 19:42:40 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://davidhmorton.com/X-Cache: Redirect from cloudfrontVia: 1.1 30f0e61c1580551568da5e96c38c9796.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: gkLZOwTsYsD9yRf-hMQE2gXAt5cz61gs6MW3Kt0XLMK5NG8b5U9ttQ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/html; charsetUTF-8Content-Length: 29693Connection: keep-aliveServer: nginxDate: Tue, 16 Dec 2025 19:42:40 GMTETag: W/73fd-19b17d2b6e0X-Powered-By: ExpressAccept-Ranges: bytesCache-Control: public, max-age0Last-Modified: Sat, 13 Dec 2025 13:07:24 GMTX-Cache: Miss from cloudfrontVia: 1.1 474071c4c0fe7769ce8d0b73ccd104b0.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: JIlzLPPMAShC1qs0WQoif9_6jqgeA_F45miwjtqKYsgc4-mmA4zYFA !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0> meta http-equivCache-Control contentno-transform /> title>David H. Morton - Bilingual CV/title> meta namedescription contentProfessional CV of David H. Morton, experienced Operations Manager in Blockchain & Digital Currency | Data Analytics and Web3 SEO Specialist | Bilingual in English and Mandarin. Available in English and Chinese.> link relalternate hrefhttps://davidhmorton.com/ hreflangen/> link relalternate hrefhttps://davidhmorton.com/zh_tw hreflangzh/> link relcanonical hrefhttps://davidhmorton.com/> meta propertyog:title contentDavid H. Morton - Multi Language CV /> meta propertyog:description contentExperienced Operations Manager in Blockchain & Digital Currency | Data Analytics and Web3 SEO Specialist. /> meta propertyog:image contenthttps://davidhmorton.com/img/previewimg.png /> meta propertyog:url contenthttps://davidhmorton.com/ /> meta nametwitter:card contentsummary_large_image> meta nametwitter:title contentDavid H. Morton - Multi Language CV> meta nametwitter:description contentExperienced Operations Manager in Blockchain & Digital Currency | Data Analytics and Web3 SEO Specialist | Bilingual in English and Mandarin.> meta nametwitter:image contenthttps://davidhmorton.com/img/previewimg.png> meta nametwitter:site content@YourTwitterHandle> link relicon typeimage/svg+xml hrefimg/favicon.svg> link relicon typeimage/png hrefimg/favicon.png> link relstylesheet hrefcss/style.css> !-- Include Marked.js for Markdown parsing -->script srchttps://cdn.jsdelivr.net/npm/marked/marked.min.js>/script>!-- Include DOMPurify for sanitizing HTML -->script srchttps://cdn.jsdelivr.net/npm/dompurify@2.4.0/dist/purify.min.js>/script> script srcjs/script.js defer>/script> style> body { font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif; } /style> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css integritysha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg crossoriginanonymous referrerpolicyno-referrer /> style> .icon-button i { font-size: 20px; /* Adjust the size as needed */} *,*::before,*::after { box-sizing: border-box;} /* Chat Section Container */ .chat-section { position: relative; width: 100%; max-width: 800px; /* Adjust as needed */ margin: 0 auto; padding: 20px; } /* Centered Button Container */ .chat-button-container { display: flex; justify-content: center; /* Horizontal centering */ align-items: center; /* Vertical centering */ height: 100px; /* Adjust height as needed */ transition: height 0.5s ease, margin 0.5s ease; /* Smooth transition */ overflow: hidden; /* Hide content when collapsed */ } /* Collapsed State for Chat Button Container */ .chat-button-container.collapsed { height: 0; margin: 0; padding: 0; } /* Centered Button Styles */ #open-chat-btn { padding: 15px 25px; font-size: 16px; font-weight: 500; color: #fff; background-color: #007bff; border: none; border-radius: 25px; cursor: pointer; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); transition: background-color 0.3s ease, transform 0.3s ease; } #open-chat-btn:hover { background-color: #0056b3; transform: scale(1.05); /* Slightly enlarge on hover */ } /* Embedded Concertina Chat Window Styles */ #chat-concertina { width: 100%; max-height: 0; /* Collapsed state */ background-color: #fff; border-radius: 15px; box-shadow: 0 8px 16px rgba(0,0,0,0.2); overflow: hidden; transition: max-height 0.5s ease; } /* Active State for Chat Concertina */ #chat-concertina.active { max-height: 500px; /* Expanded state */ } /* Chat Header */ #chat-header { background-color: #007bff; color: #fff; padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; } #chat-header h2 { margin: 0; font-size: 18px; } #close-chat-btn { background: none; border: none; color: #fff; font-size: 20px; cursor: pointer; transition: transform 0.3s ease; } #close-chat-btn:hover { transform: rotate(90deg); /* Rotate on hover for effect */ } /* Chat Messages */ #messages { padding: 15px 20px; flex: 1; overflow-y: auto; background-color: #f9f9f9; height: 300px; /* Adjust based on max-height */ } /* Message Styles */ .message { margin-bottom: 15px; display: flex; flex-direction: column; } .user { align-items: flex-end; } .assistant { align-items: flex-start; } .message-content { max-width: 80%; padding: 10px 15px; border-radius: 20px; position: relative; word-wrap: break-word; font-size: 14px; } .message-content > p,li{ font-size: 14px; } .user .message-content { background-color: #007bff; color: #fff; border-bottom-right-radius: 0; } .assistant .message-content,.assistant .message-content * { background-color: #e4e6eb; color: #000; border-bottom-left-radius: 0; font-size: 14px; line-height: 1.5; } /* Countdown Display */ #countdown { margin-left: 10px; font-size: 14px; color: #555; flex-shrink: 0; } /* Input Area */ #input-area { display: flex; padding: 10px 20px; border-top: 1px solid #ddd; background-color: #fff; flex-shrink: 0; } #user-input { flex: 1; padding: 10px 15px; border: 1px solid #ccc; border-radius: 25px; font-size: 14px; outline: none; transition: border-color 0.3s ease; } #user-input:focus { border-color: #007bff; } #send-button { margin-left: 10px; padding: 10px 20px; font-size: 14px; font-weight: 500; color: #fff; background-color: #28a745; border: none; border-radius: 25px; cursor: pointer; transition: background-color 0.3s ease, transform 0.3s ease; } #send-button:hover { background-color: #218838; transform: scale(1.05); /* Slightly enlarge on hover */ } /* Waiting Animation Styles */ .ellipsis { display: inline-block; width: 1em; text-align: left; } .ellipsis::after { content: .; animation: ellipsis steps(3,end) 1s infinite; } @keyframes ellipsis { 0%, 30% { content: .; } 60% { content: ..; } 90%, 100% { content: ...; } } /* Responsive Design for Mobile Screens */ @media (max-width: 768px) { .chat-section { padding: 10px; } #chat-concertina.active { max-height: 80vh; /* Adjust based on device */ } #messages { height: 250px; /* Adjust based on max-height */ } /* Adjust Input Area Layout */ #input-area { flex-direction: column; /* Stack children vertically */ align-items: stretch; /* Stretch children to fill width */ } /* Style Input Field and Send Button */ #user-input, #send-button { width: 100%; /* Full width for easy tapping */ margin-bottom: 10px; margin-left: 0px; /* Spacing between elements */ } /* Style Countdown */ #countdown { text-align: center; /* Center the text */ width: 100%; /* Full width */ font-size: 14px; /* Adjust font size if needed */ } } /* Ensure the tooltip doesnt overlap the icon */.header-buttons { display: flex; align-items: center; position: relative;}/* Style for icon buttons in the header */.icon-button { background: none; border: none; color: #fff; font-size: 18px; cursor: pointer; margin-left: 10px; padding: 5px;}/* Tooltip container */.tooltip { position: absolute; top: 50px; /* Adjust so the tooltip is below the header */ right: 10px; /* Adjust as needed */ width: 300px; background-color: #fff; color: #000; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); display: none; /* Hidden by default */ z-index: 1000;}/* Tooltip content */.tooltip-content { padding: 15px; font-size: 14px;}/* Close button inside tooltip */#close-tooltip-btn { background: none; border: none; color: #007bff; font-size: 14px; cursor: pointer; margin-top: 10px; text-decoration: underline;} /style> script typeapplication/ld+json> { @context: http://schema.org, @type: Person, name: David H. Morton, url: https://davidhmorton.com/, dateModified: 2024-03-16 } /script> script async srchttps://www.googletagmanager.com/gtag/js?idG-MSXD4VGWTB>/script>script> window.dataLayer window.dataLayer || ; function gtag(){dataLayer.push(arguments);} gtag(js, new Date()); gtag(config, G-MSXD4VGWTB);/script>/head>body> header> nav> a href# classcurrent langen>English/a> a hrefzh_tw langzh>中文/a> div classinfo-icon onclicktogglePopup() ontouchstarttogglePopup()>?/div> div classpopup idsiteInfoPopup onclickhidePopup(event)> div classpopup-content onclickstopPropagation(event)> span classclose>×/span> h2>About This Site/h2> p>This site is my personal online CV. Here you can find information about my professional background, skills, and work experience. You can also try out my AI chatbot if you click the Chat with me button. Feel free to get in touch if you have any questions or job opportunities./p> a classwordlego hrefwordle?langen>Play Wordle?/a> /div> /div> /nav> div classcontainer> h1>David H. Morton/h1> p>Technical SEO Specialist | JavaScript SEO • SPA Rendering • Cloudflare/Edge SEO • Multi-Domain Architecture | Crypto & iGaming | EN/中文/p> /div> /header> !-- Chat Section --> div classchat-section> !-- Centered Button to Open Chat --> div classchat-button-container> button idopen-chat-btn>Chat with Me/button> /div> !-- Embedded Chat Interface --> div idchat-concertina classchat-wrapper> !-- Chat Header -->div idchat-header> h2 stylecolor: white;>Davids Resumé Assistant/h2> div classheader-buttons> button idclose-chat-btn>×/button> button idtooltip-icon classicon-button aria-labelInformation about the chat aria-haspopuptrue aria-expandedfalse > i classfas fa-info-circle>/i> /button> /div> /div> !-- Tooltip Content --> div idtooltip classtooltip> div classtooltip-content> p stylefont-size: 14px;> This AI assistant powers David Morton’s CV site using the OpenAI Responses API (i>gpt-4o-mini/i>) and a custom retrieval endpoint (RAG) against his résumé vector store. Ask it anything about David’s experience, skills, or education, and it will fetch the most relevant details in real time. br> Model: i>gpt-4o-mini/i> br> Powered by OpenAI Responses API + custom vector-store search /p> button idclose-tooltip-btn>Close/button> /div> /div> !-- Chat Messages --> div idmessages>/div> !-- Input Area --> div idinput-area> input typetext iduser-input placeholderType your question... /> button idsend-button>Send/button> span idcountdown>100 questions remaining/span> /div> /div> /div> main> div classcontainer> section idsummary> h2>Summary/h2> p>I am a Technical SEO Specialist focused on solving indexing, rendering, performance, and crawlability issues for complex JavaScript-driven websites and large multi-domain ecosystems. I’ve worked across crypto exchanges, iGaming platforms, and Web3 products to make SPAs fully crawlable and search-friendly using Cloudflare Workers, prerendering pipelines, metadata injection, and architectural improvements./p>p>My background blends SEO, web architecture, and hands-on debugging across 200–1000+ domain networks. I build SEO systems that improve discoverability, stabilize rendering, and strengthen analytics through GTM/GA4 event modeling. Fluent in English and Mandarin, I collaborate effectively with engineering teams across APAC and globally./p> /section> section idexperience> h2>Professional Experience/h2> article> h3>Technical SEO Specialist at NDA Company – Curaçao/h3> p classdates>Feb 2025 – Present/p> p>Joined initially as a technical SEO consultant and transitioned into a hands-on specialist role. Work focuses on rendering, crawlability, and indexing improvements across a large multi-domain iGaming ecosystem. Support the shift from mobile-only architecture to fully responsive SPA/SSR setups, while ensuring search engines receive accurate metadata and structured data./p> ul> li>Improved crawlability and rendering for 200+ SPA and mirror domains across multiple iGaming brands./li> li>Used nJS and Cloudflare Workers to inject metadata and structured data, reducing duplication issues./li> li>Developed GTM containers and custom event tracking to improve behavioural analytics and conversion insights./li> li>Assisted in building SEO-friendly landing page templates for organic acquisition./li> li>Supported development of a WordPress-based CMS to expand search footprint and content velocity./li> /ul> /article> article> h3>Technical SEO / Web Architecture Specialist at NDA Company – Curaçao/h3> p classdates>Jun 2024 – Oct 2024/p> p>Worked on technical improvements across a multi-brand iGaming platform, supporting SEO, rendering performance, and metadata delivery. Contributed to early architecture planning for a Nuxt-based SSR redesign and provided CDN-level fixes for bots and crawlers./p> ul> li>Enhanced crawlability for 1000+ domains using CloudFront/edge metadata injection./li> li>Documented requirements for a new SEO-friendly Nuxt SSR framework./li> li>Built UTM and channel-tracking utilities to improve attribution accuracy./li> li>Supported SEO strategy during large-scale platform changes across multiple markets./li> /ul> /article> article> h3>SEO Specialist / Platform Optimization at a hrefhttps://8v.com targetblank>8V Global/a>/h3> p classdates>Nov 2022 – June 2024/p> p>Served as the primary SEO specialist for a crypto exchange, improving discoverability and fixing technical SEO issues within a JavaScript SPA environment. Helped transition the platform to a prerendered architecture and built supporting long-form content systems./p> ul> li>Implemented SEO strategy that significantly increased search clicks and impressions./li> li>Built a WordPress content hub to strengthen long-tail search visibility./li> li>Resolved rendering and indexing issues by implementing prerendering solutions./li> li>Provided data insights and collaborated with developers (EN/中文) to improve performance and crawler behaviour./li> /ul> /article> article> h3>Platform Operations at a hrefhttps://www.fameex.com/en-US targetblank>FameEX/a>/h3> p classdates>Aug 2022 – Nov 2022/p> p>Supported SEO, listings, and communication initiatives for a global crypto exchange. Coordinated listings with major aggregators and contributed to improving search visibility for key pages./p> ul> li>Secured accurate listings on CoinMarketCap and CoinGecko./li> li>Supported SEO improvements and link-building initiatives./li> li>Provided EN/中文 communication support during external negotiations./li> /ul> /article> article> h3>Marketing Executive at a hrefhttps://dtco.co/ targetblank>Digital Treasury Corporation (DTCO)/a>/h3> p classdates>Sep 2019 – Dec 2019/p> p>Worked on marketing and communication projects for blockchain-based initiatives, including local currency projects, medical record systems, and IP protection technologies./p> ul> li>Supported marketing for blockchain-based currency and medical record systems./li> li>Assisted communication strategy for IP protection technology./li> li>Helped raise visibility for an IPFS-based hardware project./li> /ul> /article> article> h3>Operational Specialist at a hrefhttps://www.altrad.com targetblank>Altrad-Hertel/a>/h3> p classdates>Jul 2016 – Oct 2017/p> p>Worked in regulated industrial environments on plant decommissioning projects. Experience includes PPE-heavy roles, safety procedures, and hazardous-material handling./p> ul> li>Supported regulated decommissioning and safety processes on nuclear projects./li> li>Worked in high-risk environments requiring strict procedural compliance./li> li>Completed specialist training in PPE usage and rescue procedures./li> /ul> /article> article> h3>Operational Specialist at a hrefhttps://www.baesystems.com/en/home targetblank>BAE Systems/a>/h3> p classdates>Jan 2007 – Dec 2009/p> p>Entry-level role supporting manufacturing and assembly processes within defence production lines./p> ul> li>Operated plant equipment to support material production./li> li>Assisted in assembly work requiring precision and compliance./li> li>Maintained documentation aligned with safety and security standards./li> /ul> /article>/section> section idpersonal-projects> h2>Personal Projects/h2> article> h3>Cryptocurrency Project Founder/h3> p classdates>Nov 2020 - Present/p> p>Developed several small-scale Web3 projects as a personal interest, including token contracts on Ethereum, BSC, and BCH ecosystems. These projects were built to explore smart contract development, tokenomics, and community engagement within decentralized platforms./p> ul> li>Created and deployed multiple ERC-20 / BEP-20 tokens as learning and experimentation projects./li> li>Developed smart contracts using Solidity and integrated them with simple Web3 front-ends (ethers.js)./li> li>Built lightweight NFT utilities and experimented with token–NFT interactions./li> /ul> /article> article> h3>Founder of a hrefhttps://eastlondonmanwithavan.com targetblank>Eastlondonmanwithavan.com/a>/h3> p classdates>February 2013 - Present/p> p>Originally launched as a small removals service in London, later transitioning into logistics support for film equipment. The project is now passive but remains online as part of my early entrepreneurial work./p> ul> li>Built and operated a small removals/logistics service during early career./li> li>Experimented with early cryptocurrency payments, being among the first UK removals services to accept Bitcoin./li> li>Managed the website, branding, and customer acquisition channels./li> /ul> /article>/section> section ideducation> h2>Education/h2> article> article> h3>National Taiwan Normal University/h3> p>Mandarin Chinese, Jun 2010 - Jun 2011/p> /article> /article> /section> h2>Skills/h2> section idskills> div classskills-category> h3>Industry Knowledge/h3> ul> li>Cryptocurrency & Blockchain/li> li>Financial Analysis in Blockchain Contexts/li> li>SEO & Digital Marketing/li> li>iGaming/li> /ul> /div> div classskills-category> h3>Tools & Technologies/h3> ul> li>HTML/CSS/JavaScript: Front-end development/li> li>Full-Stack Development/li> li>AWS: Cloud services and deployment/li> li>Ollama, Langchain, open source LLMs/li> /ul> /div> div classskills-category> h3>Professional Competencies/h3> ul> li>Cross-Cultural Communication: Fluent in English and Mandarin/li> li>Strategic Leadership: Leading teams towards organizational goals/li> /ul> /div> div classskills-category> h3>Analytical Skills/h3> ul> li>Data Analysis: Interpreting complex data sets/li> li>Performance Reporting: Informing strategic planning/li> /ul> /div> /section> section idlanguages> h2>Languages/h2> ul> li> span classlanguage-name>English/span> span classlanguage-skill data-skillnative> span classlanguage-level>/span> /span> /li> li> span classlanguage-name>Chinese/span> span classlanguage-skill data-skillfluent> span classlanguage-level>/span> /span> /li> li> span classlanguage-name>Malay/span> span classlanguage-skill data-skillconversational> span classlanguage-level>/span> /span> /li> /ul> /section> /div> /main> footer> section idcontact> h2>Contact Information/h2> address> Email: span idshow-email classcontact-info> Show Email /span>br> Phone: span idshow-phone classcontact-info>Show Phone/span> /address> /section> section iddownloads> h2>Download the CV/h2> a href/docs/David-H-Morton-CV-2025-12.pdf downloadDavid-H-Morton-CV-2025-12.pdf>Download as PDF/a> /section> p>Last updated: time datetime2025-12-13>December 13, 2025/time>/p> /footer> script typemodule> import DOMPurify from https://cdn.jsdelivr.net/npm/dompurify@3.1.3/+esm; // grab your DOM nodes const openChatBtn document.getElementById(open-chat-btn); const closeChatBtn document.getElementById(close-chat-btn); const chatWin document.getElementById(chat-concertina); const sendButton document.getElementById(send-button); const userInput document.getElementById(user-input); const messagesDiv document.getElementById(messages); const countdownSpan document.getElementById(countdown); let remaining +localStorage.getItem(remainingQuestions) || 100; function scrollBottom() { messagesDiv.scrollTop messagesDiv.scrollHeight; } function addBubble(role, text ) { const wrap document.createElement(div); wrap.className `message ${role}`; const inner document.createElement(div); inner.className message-content; if (role assistant) { // assistant uses markdown accumulation inner._md ; } else { // user bubble: just show plain text inner.textContent text; } wrap.appendChild(inner); messagesDiv.appendChild(wrap); scrollBottom(); return inner;} function updateCountdown() { countdownSpan.textContent `${remaining} question${remaining ! 1 ? s : } remaining`; localStorage.setItem(remainingQuestions, remaining);}updateCountdown(); // show/hide chat openChatBtn.onclick () > { chatWin.classList.add(active); document.querySelector(.chat-button-container).classList.add(collapsed); userInput.focus(); }; closeChatBtn.onclick () > { chatWin.classList.remove(active); document.querySelector(.chat-button-container).classList.remove(collapsed); }; // wire up send sendButton.addEventListener(click, sendMessage); userInput.addEventListener(keypress, e > { if (e.key Enter) sendMessage(); }); // before sendMessage() or any SSE codefunction appendToChat(text) { // reuse your existing bubble logic const bubble addBubble(assistant, ); bubble.textContent text; scrollBottom();} // 3) Render a bubble’s markdown safelyfunction renderMarkdown(el) { // Convert markdown → HTML, then sanitize const html DOMPurify.sanitize(marked.parse(el._md)); el.innerHTML html; scrollBottom();}let lastResponseId null;async function sendMessage() { // 0) block if no questions left if (remaining 0) { alert(Youve reached your limit of questions for today.); return; } const msg userInput.value.trim(); if (!msg) return; // 1) clear the input & focus userInput.value ; userInput.focus(); // 2) decrement, persist, re-render remaining--; updateCountdown(); // 3) echo the user addBubble(user, msg); // 4) create assistant bubble & start SSE… const assistantBubble addBubble(assistant); assistantBubble._md ; // build URL w/ threading let url `/chat?message${encodeURIComponent(msg)}`; if (lastResponseId) url + `&previousResponseId${lastResponseId}`; const es new EventSource(url); es.addEventListener(response.created, ev > { const { response: { id } } JSON.parse(ev.data); lastResponseId id; }); es.addEventListener(response.output_text.delta, ev > { const { delta } JSON.parse(ev.data); assistantBubble._md + delta; renderMarkdown(assistantBubble); }); es.addEventListener(response.completed, () > es.close()); es.onerror () > { assistantBubble._md + \n*Error retrieving response.*; renderMarkdown(assistantBubble); es.close(); };}/script> script> const tooltipIcon document.getElementById(tooltip-icon); const tooltip document.getElementById(tooltip); const closeTipBtn document.getElementById(close-tooltip-btn); let tipVisible false; function show(){ tooltip.style.displayblock; tooltipIcon.setAttribute(aria-expanded,true); tipVisibletrue; } function hide(){ tooltip.style.displaynone; tooltipIcon.setAttribute(aria-expanded,false); tipVisiblefalse; } /* desktop hover */ tooltipIcon .addEventListener(mouseenter, show); tooltipIcon .addEventListener(mouseleave, e>{ if(!tooltip.contains(e.relatedTarget)) hide(); }); tooltip .addEventListener(mouseenter, show); tooltip .addEventListener(mouseleave, e>{ if(!tooltipIcon.contains(e.relatedTarget)) hide(); }); /* mobile / click */ tooltipIcon .addEventListener(click, e>{ e.stopPropagation(); tipVisible ? hide() : show(); }); closeTipBtn .addEventListener(click, hide); document.addEventListener(click, e>{ if(!tooltip.contains(e.target) && !tooltipIcon.contains(e.target)) hide(); });/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]