Domain Age EstimatorLive

Inspect domain, DNS, SSL, and technical SEO signals in one browser workspace.

Built for the MyToolDock workflow and runs locally in the browser.

Premium Settings

Advanced controls for Domain Age Estimator

Work with title tags, metadata, and analysis presets tailored for search workflows.

Local only Saved per session Preset ready
Tip: use the preset controls to tune the workspace before running the tool. Settings persist locally for this browser session and adapt to the SEO Tools family.
Advertisement
Responsive Ad Banner

Interactive Domain Age Estimator Workspace

SEO audit and generator workspace that works directly in the browser.

Advertisement
Responsive Ad Banner

What is Domain Age Estimator?

The Domain Age Estimator is part of the MyToolDock toolkit, built to stay fast, private, and comfortably local inside your browser.

Key Features and Capabilities

Step-by-Step Instructions

To use the Domain Age Estimator, follow these quick MyToolDock steps:

  1. Enter or upload the needed data into the workspace above.
  2. Tune the available settings for the workflow you want.
  3. Click the action button to run the tool locally.
  4. Copy or download the result when it appears.
`; break; case 'canonical': result = ``; break; case 'broken_links': result = 'Broken link scanning is limited to the current document in this browser session.\n' + JSON.stringify({ anchors: [...document.querySelectorAll('a[href]')].length, missingHref: [...document.querySelectorAll('a[href]')].filter(a => !a.href).length }, null, 2); break; case 'word_count': result = JSON.stringify({ words: wordCount(input || document.body.textContent), characters: (input || document.body.textContent || '').length }, null, 2); break; case 'image_alt': result = JSON.stringify({ images: document.images.length, missingAlt: [...document.images].filter(img => !img.alt).length }, null, 2); break; case 'heading_structure': result = auditStructure(parseDoc(fileText || currentHtml())); break; case 'link_audit': result = analyzeLinks(parseDoc(fileText || currentHtml())); break; case 'code_ratio': { const html = fileText || currentHtml(); const textLen = (parseDoc(html).body?.textContent || '').trim().length; result = JSON.stringify({ codeLength: html.length, textLength: textLen, ratio: (html.length / Math.max(1, textLen)).toFixed(2) }, null, 2); break; } case 'plagiarism': result = `Plagiarism checker mock removed. Local similarity preview: ${uniqueWords(input).length} unique terms, ${wordCount(input)} words.`; break; case 'whois': result = `WHOIS lookup requires a network RDAP API. Use this as a domain-info preview for ${secondary || input || location.hostname}.`; break; case 'ssl': result = JSON.stringify({ protocol: location.protocol, secure: location.protocol === 'https:', host: location.hostname }, null, 2); break; case 'fetch_audit': result = `This audit is ready. For same-origin pages, paste HTML or a URL into the workspace to analyze metadata and ranking hints.`; break; case 'audit': result = auditMeta(parseDoc(fileText || currentHtml())); break; default: result = 'This SEO tool is ready. Paste HTML or page content and run the audit.'; } show(result); }; btnRun.addEventListener('click', run); btnClear.addEventListener('click', () => { inputEl.value = ''; secondaryEl.value = ''; numberEl.value = '60'; fileEl.value = ''; fileText = ''; outEl.value = ''; outBox.style.display = 'none'; }); btnCopy.addEventListener('click', () => navigator.clipboard.writeText(outEl.value || '')); const premiumKey = 'allinone-premium-domain-age-checker'; const premiumProfile = {"category": "SEO Tools", "slug": "domain-age-checker", "name": "Domain Age Estimator", "defaultPreset": "balanced", "defaultDetail": "4", "panelBlurb": "Work with title tags, metadata, and analysis presets tailored for search workflows.", "presetExamples": {"balanced": "Title: MyToolDock\nDescription: Fast privacy-first browser utilities.", "pro": "keyword: browser tools\nsecondary: productivity suite\nintent: informational", "batch": "page-a\npage-b\npage-c\npage-d", "minimal": "meta description example"}, "moodOptions": ["default", "focus", "seo", "audit"], "extraFields": [{"id": "premiumSeoMode", "label": "SEO Mode", "default": "audit", "options": [{"value": "audit", "label": "Audit"}, {"value": "meta", "label": "Meta"}, {"value": "keyword", "label": "Keyword"}, {"value": "content", "label": "Content"}]}, {"id": "premiumSeoTarget", "label": "Target", "default": "current", "options": [{"value": "current", "label": "Current Page"}, {"value": "homepage", "label": "Homepage"}, {"value": "custom", "label": "Custom URL"}]}], "extraDefaults": {"premiumSeoMode": "audit", "premiumSeoTarget": "current"}, "applyMode": "seo"}; const currentSlug = "domain-age-checker"; const slugHas = (term) => currentSlug.includes(term); const premiumDefaults = { preset: premiumProfile.defaultPreset || 'balanced', detail: premiumProfile.defaultDetail || '3', exportMode: 'auto', theme: 'default', autoSave: true, autoCopy: false }; const familyDefaults = Object.assign({}, premiumDefaults, premiumProfile.extraDefaults || {}); const premiumControls = { preset: document.getElementById('premiumPreset'), detail: document.getElementById('premiumDetail'), exportMode: document.getElementById('premiumExport'), theme: document.getElementById('premiumTheme'), autoSave: document.getElementById('premiumAutoSave'), autoCopy: document.getElementById('premiumAutoCopy'), loadExample: document.getElementById('premiumLoadExample'), applyFamily: document.getElementById('premiumApplyFamily'), savePreset: document.getElementById('premiumSavePreset'), resetPreset: document.getElementById('premiumResetPreset') }; const premiumExtraControls = Object.fromEntries((premiumProfile.extraFields || []).map(field => [field.id, document.getElementById(field.id)])); const workspaceFields = Array.from(document.querySelectorAll('.tool-interactive-area textarea, .tool-interactive-area input[type="text"], .tool-interactive-area input[type="search"], .tool-interactive-area input[type="number"], .tool-interactive-area input[type="date"], .tool-interactive-area input[type="range"], .tool-interactive-area select')); const primaryTextarea = document.querySelector('.tool-interactive-area textarea'); const textInputs = Array.from(document.querySelectorAll('.tool-interactive-area input[type="text"], .tool-interactive-area input[type="search"]')); const numberInputs = Array.from(document.querySelectorAll('.tool-interactive-area input[type="number"]')); const dateInputs = Array.from(document.querySelectorAll('.tool-interactive-area input[type="date"]')); const selectInputs = Array.from(document.querySelectorAll('.tool-interactive-area select')); const primaryField = primaryTextarea || textInputs[0] || numberInputs[0] || null; const presetExamples = premiumProfile.presetExamples || { balanced: `Example for Domain Age Estimator\n\nUse the default flow to start quickly.`, pro: `Pro workflow for Domain Age Estimator\n- Detail: high\n- Output: polished\n- Mode: advanced`, batch: `Batch set for Domain Age Estimator\nItem 1\nItem 2\nItem 3\nItem 4`, minimal: `Quick example for Domain Age Estimator` }; const applyTextValue = (el, value) => { if (!el || value === undefined || value === null || value === '') return false; el.value = String(value); el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); return true; }; const setSelectValue = (el, value, keywords = []) => { if (!el || !el.options || !el.options.length) return false; const target = String(value || '').toLowerCase(); const searchTerms = [target, ...keywords.map(k => String(k).toLowerCase())].filter(Boolean); const option = Array.from(el.options).find(opt => { const optionText = `${opt.textContent || ''} ${opt.value || ''}`.toLowerCase(); return searchTerms.some(term => optionText.includes(term)); }); if (!option) return false; el.value = option.value; el.dispatchEvent(new Event('change', { bubbles: true })); return true; }; const fillWorkspace = (values) => { if (primaryTextarea && values.textarea !== undefined) applyTextValue(primaryTextarea, values.textarea); if (textInputs[0] && values.firstText !== undefined) applyTextValue(textInputs[0], values.firstText); if (textInputs[1] && values.secondText !== undefined) applyTextValue(textInputs[1], values.secondText); if (textInputs[2] && values.thirdText !== undefined) applyTextValue(textInputs[2], values.thirdText); if (numberInputs[0] && values.number !== undefined) { numberInputs[0].value = String(values.number); numberInputs[0].dispatchEvent(new Event('input', { bubbles: true })); numberInputs[0].dispatchEvent(new Event('change', { bubbles: true })); } if (numberInputs[1] && values.number2 !== undefined) { numberInputs[1].value = String(values.number2); numberInputs[1].dispatchEvent(new Event('input', { bubbles: true })); numberInputs[1].dispatchEvent(new Event('change', { bubbles: true })); } if (dateInputs[0] && values.date1) { dateInputs[0].value = values.date1; dateInputs[0].dispatchEvent(new Event('change', { bubbles: true })); } if (dateInputs[1] && values.date2) { dateInputs[1].value = values.date2; dateInputs[1].dispatchEvent(new Event('change', { bubbles: true })); } if (values.selects) { selectInputs.forEach((selectEl, idx) => { const selectValue = values.selects[idx] ?? values.selects.default; if (selectValue !== undefined) setSelectValue(selectEl, selectValue, values.selectKeywords || []); }); } }; const readPremiumState = () => { try { return Object.assign({}, familyDefaults, JSON.parse(sessionStorage.getItem(premiumKey) || '{}')); } catch { return { ...familyDefaults }; } }; const savePremiumState = () => { const state = { preset: premiumControls.preset?.value || premiumDefaults.preset, detail: premiumControls.detail?.value || premiumDefaults.detail, exportMode: premiumControls.exportMode?.value || premiumDefaults.exportMode, theme: premiumControls.theme?.value || premiumDefaults.theme, autoSave: !!premiumControls.autoSave?.checked, autoCopy: !!premiumControls.autoCopy?.checked, ...Object.fromEntries((premiumProfile.extraFields || []).map(field => [field.id, premiumExtraControls[field.id]?.value || field.default || ''])) }; sessionStorage.setItem(premiumKey, JSON.stringify(state)); document.body.dataset.workspaceMood = state.theme; document.documentElement.dataset.workspacePreset = state.preset; Object.entries(premiumExtraControls).forEach(([key, el]) => { if (el) document.documentElement.dataset[key] = state[key] || ''; }); }; const applyPremiumState = (state) => { if (premiumControls.preset) premiumControls.preset.value = state.preset; if (premiumControls.detail) premiumControls.detail.value = state.detail; if (premiumControls.exportMode) premiumControls.exportMode.value = state.exportMode; if (premiumControls.theme) premiumControls.theme.value = state.theme; if (premiumControls.autoSave) premiumControls.autoSave.checked = !!state.autoSave; if (premiumControls.autoCopy) premiumControls.autoCopy.checked = !!state.autoCopy; (premiumProfile.extraFields || []).forEach(field => { const el = premiumExtraControls[field.id]; if (el) el.value = state[field.id] || field.default || el.value; }); document.body.dataset.workspaceMood = state.theme; document.documentElement.dataset.workspacePreset = state.preset; }; const loadExample = () => { if (!primaryField) return; const state = readPremiumState(); const extraHint = (premiumProfile.extraFields || []).map(field => state[field.id] || field.default || '').filter(Boolean).join(' / '); const example = presetExamples[state.preset] || presetExamples.balanced; primaryField.value = example; if (extraHint && primaryField.tagName === 'TEXTAREA') { primaryField.value = `${primaryField.value}\n\nSettings: ${extraHint}`; } primaryField.dispatchEvent(new Event('input', { bubbles: true })); if (primaryField.tagName === 'TEXTAREA' || primaryField.type === 'text' || primaryField.type === 'search' || primaryField.type === 'number') { primaryField.focus(); } }; const applyFamilySettings = () => { const state = readPremiumState(); const familyMode = premiumProfile.applyMode || 'generic'; const extraValue = (id) => (state[id] || premiumProfile.extraDefaults?.[id] || ''); const setById = (id, value) => { const el = document.getElementById(id); if (!el || value === undefined || value === null || value === '') return false; el.value = String(value); el.dispatchEvent(new Event('input', { bubbles: true })); el.dispatchEvent(new Event('change', { bubbles: true })); return true; }; if (familyMode === 'pdf') { const mode = extraValue('premiumPdfMode'); const scope = extraValue('premiumPdfScope'); const pageList = scope === 'all' ? '1-999' : scope === 'current' ? '1' : '1,2'; setById('pdfSecondary', mode); setById('pdfText', pageList); setById('pdfNumber', mode === 'compress' ? 85 : mode === 'sign' ? 90 : 90); fillWorkspace({ textarea: pageList, firstText: mode, number: mode === 'compress' ? 85 : mode === 'sign' ? 90 : 90, selects: [mode, scope], selectKeywords: [mode, scope] }); } else if (familyMode === 'developer') { const theme = extraValue('premiumDevTheme'); const format = extraValue('premiumDevFormat'); const samples = { pretty: `{\n "name": "MyToolDock",\n "type": "developer"\n}`, minify: `{"name":"MyToolDock","type":"developer"}`, lint: `function demo() {\n return true;\n}` }; const devSample = samples[format] || samples.pretty; setById('dcInput', devSample); setById('dcSecondary', format); setById('dcNumber', theme === 'focus' ? 2 : theme === 'dark' ? 4 : theme === 'light' ? 1 : 0); fillWorkspace({ textarea: devSample, firstText: format, secondText: theme, number: theme === 'focus' ? 2 : theme === 'dark' ? 4 : theme === 'light' ? 1 : 0, selects: [format, theme], selectKeywords: [format, theme] }); document.body.dataset.workspaceMood = theme || 'default'; } else if (familyMode === 'calculator') { const scenario = extraValue('premiumCalcScenario'); const precision = extraValue('premiumCalcPrecision'); const samples = { finance: 'loan amount=250000\nrate=7.5\nterm=240', academic: '90, 3.7, 4.0, 88, 92', business: 'revenue=120000\nmargin=18\nexpenses=55000', simple: '100 / 4' }; const calcSample = samples[scenario] || samples.finance; setById('cbInput', calcSample); setById('cbSecondary', scenario); setById('cbNumber', precision); setById('cbDate', new Date().toISOString().slice(0, 10)); setById('cbDate2', new Date(Date.now() + 86400000 * 30).toISOString().slice(0, 10)); fillWorkspace({ textarea: calcSample, firstText: scenario, number: precision, date1: new Date().toISOString().slice(0, 10), date2: new Date(Date.now() + 86400000 * 30).toISOString().slice(0, 10), selects: [scenario, precision], selectKeywords: [scenario, precision] }); } else if (familyMode === 'image') { const imageMode = extraValue('premiumImageMode'); const exportFormat = extraValue('premiumImageExport'); setById('imgText', `${imageMode}:${exportFormat}`); setById('imgNumber', imageMode === 'compress' ? 80 : imageMode === 'resize' ? 90 : 75); fillWorkspace({ textarea: `${imageMode}:${exportFormat}`, firstText: imageMode, secondText: exportFormat, number: imageMode === 'compress' ? 80 : imageMode === 'resize' ? 90 : 75, selects: [imageMode, exportFormat], selectKeywords: [imageMode, exportFormat] }); } else if (familyMode === 'seo') { const seoMode = extraValue('premiumSeoMode'); const seoTarget = extraValue('premiumSeoTarget'); const seoSamples = { 'meta-tag-generator': '', 'meta-description-generator': '', 'open-graph-generator': ' ', 'schema-markup-generator': '{ "@context": "https://schema.org", "@type": "WebSite", "name": "MyToolDock" }', 'robots-txt-generator': 'User-agent: * Allow: / Sitemap: https://mytooldock.com/sitemap.xml' }; const seoSample = seoSamples[Object.keys(seoSamples).find(key => slugHas(key))] || (seoMode === 'meta' ? '' : seoMode === 'keyword' ? 'meta tags, structured data, seo audit, open graph' : seoMode === 'content' ? '

Optimized Page

Improved keyword density and content structure.

' : 'MyToolDock '); const seoTargetValue = slugHas('schema') ? 'structured data' : slugHas('og') ? 'social preview' : seoTarget; setById('seoInput', seoSample); setById('seoSecondary', seoTargetValue); setById('seoNumber', seoMode === 'keyword' ? 5 : seoMode === 'content' ? 75 : slugHas('schema') ? 20 : 60); fillWorkspace({ textarea: seoSample, firstText: seoMode, secondText: seoTargetValue, number: seoMode === 'keyword' ? 5 : seoMode === 'content' ? 75 : slugHas('schema') ? 20 : 60, selects: [seoMode, seoTargetValue], selectKeywords: [seoMode, seoTargetValue] }); } else if (familyMode === 'business') { const bizMode = extraValue('premiumBizMode'); const bizSample = bizMode === 'roi' ? 'investment=5000 returns=7800 duration=12' : bizMode === 'invoice' ? 'Invoice #2048 Subtotal=1200 Tax=96 Total=1296' : bizMode === 'salary' ? 'gross=85000 deductions=12500 net=72500' : 'cashflow=12000 costs=7000 profit=5000'; setById('cbInput', bizSample); setById('cbSecondary', bizMode); setById('cbNumber', bizMode === 'invoice' ? 1 : bizMode === 'salary' ? 12 : 4); setById('cbDate', new Date().toISOString().slice(0, 10)); setById('cbDate2', new Date(Date.now() + 86400000 * 30).toISOString().slice(0, 10)); fillWorkspace({ textarea: bizSample, firstText: bizMode, number: bizMode === 'invoice' ? 1 : bizMode === 'salary' ? 12 : 4, selects: [bizMode], selectKeywords: [bizMode] }); } else if (familyMode === 'security') { const secMode = extraValue('premiumSecMode'); const secSamples = { 'password-generator': 'P@ssw0rd!2026', 'hash-generator': 'hello world', 'security-header-checker': 'https://example.com/login username=demo', 'threat-model-auditor': 'api-key=sk_test_12345 secret=avoid-hardcoding' }; const secSample = secSamples[Object.keys(secSamples).find(key => slugHas(key))] || (secMode === 'hash' ? 'hello world' : secMode === 'password' ? 'P@ssw0rd!2026' : secMode === 'threat' ? 'api-key=sk_test_12345 secret=avoid-hardcoding' : 'https://example.com/login username=demo'); const secAlgorithmValue = slugHas('hash') ? 'SHA-512' : 'SHA-256'; setById('secInput', secSample); setById('secSecondary', slugHas('password') ? 'password' : secMode); setById('secNumber', secMode === 'password' ? 20 : secMode === 'threat' ? 5 : slugHas('hash') ? 16 : 16); setById('secAlgorithm', secAlgorithmValue); fillWorkspace({ textarea: secSample, firstText: secMode, number: secMode === 'password' ? 20 : secMode === 'threat' ? 5 : 16, selects: [secMode, secAlgorithmValue], selectKeywords: [secMode, secAlgorithmValue] }); } else if (familyMode === 'education') { const eduMode = extraValue('premiumEduMode'); const eduSamples = { 'academic-gpa-calculator': '95, 88, 91, 84', 'gpa-calculator': '95, 88, 91, 84', 'flashcard-maker': 'Term 1: Definition 1 Term 2: Definition 2', 'study-notes-organizer': 'Lecture notes Key point A Key point B' }; const eduSample = eduSamples[Object.keys(eduSamples).find(key => slugHas(key))] || (eduMode === 'quiz' ? '4, 3.7, 4, 3.3, 2.7' : eduMode === 'grade' ? '95, 88, 91, 84' : eduMode === 'flash' ? 'Term 1: Definition 1 Term 2: Definition 2' : 'Lecture notes Key point A Key point B'); setById('eduInput', eduSample); fillWorkspace({ textarea: eduSample, firstText: eduMode, selects: [eduMode], selectKeywords: [eduMode] }); } else if (familyMode === 'social') { const socialMode = extraValue('premiumSocialMode'); const socialSamples = { 'social-post-previewer': 'Launching our new tool suite today.', 'linkedin-post-generator': 'Launching our new tool suite today.', 'twitter-post-generator': 'Big update: faster local tools, better workflows.', 'instagram-caption-generator': 'New tools, clean UI, and fast local processing.', 'short-form-caption-generator': 'Quick demo of the new workflow.' }; const socialSample = socialSamples[Object.keys(socialSamples).find(key => slugHas(key))] || (socialMode === 'linkedin' ? 'Launching our new tool suite today.' : socialMode === 'tiktok' ? 'Quick demo of the new workflow.' : socialMode === 'x' ? 'Big update: faster local tools, better workflows.' : 'New tools, clean UI, and fast local processing.'); setById('socText', socialSample); setById('socTitle', slugHas('linkedin') ? 'LINKEDIN' : slugHas('instagram') ? 'INSTAGRAM' : socialMode.toUpperCase()); setById('socTag', slugHas('linkedin') ? '#productivity #tools' : slugHas('instagram') ? '#launch #design' : '#launch #design'); fillWorkspace({ textarea: socialSample, firstText: socialMode, selects: [socialMode], selectKeywords: [socialMode] }); } else if (familyMode === 'converter') { const convertMode = extraValue('premiumConvertMode'); const convertSamples = { 'csv-json-converter': 'name,value MyToolDock,Tools', 'base64-encoder': 'Special generator', 'url-encoder': 'https://mytooldock.com/search?q=local tools', 'unit-converter': '10 km' }; const convertSample = convertSamples[Object.keys(convertSamples).find(key => slugHas(key))] || (convertMode === 'decode' ? 'U3BlY2lhbCBnZW5lcmF0b3I=' : convertMode === 'encode' ? 'Special generator' : convertMode === 'format' ? 'name,value MyToolDock,Tools' : '10 km'); setById('dcInput', convertSample); setById('dcSecondary', convertMode); setById('dcNumber', convertMode === 'format' ? 2 : 0); fillWorkspace({ textarea: convertSample, firstText: convertMode, number: convertMode === 'format' ? 2 : 0, selects: [convertMode], selectKeywords: [convertMode] }); } else if (familyMode === 'text') { const textMode = extraValue('premiumTextMode'); const textSamples = { 'add-line-numbers-to-text': 'Line one Line two Line three', 'case-converter': 'Rewrite this sentence to sound more polished.', 'word-counter': 'Long article text goes here.', 'slug-generator': 'MyToolDock Launch Event', 'text-summarizer': 'Short note.' }; const textSample = textSamples[Object.keys(textSamples).find(key => slugHas(key))] || (textMode === 'rewrite' ? 'Rewrite this sentence to sound more polished.' : textMode === 'expand' ? 'Short note.' : textMode === 'summarize' ? 'Long article text goes here.' : 'Line one Line two Line three'); setById('familyInput', textSample); setById('familySecondary', slugHas('case-converter') ? 'title' : textMode === 'rewrite' ? 'formal' : textMode === 'clean' ? 'trim' : 'mode'); setById('familyTertiary', textMode === 'rewrite' ? 'polished version' : slugHas('slug-generator') ? 'seo friendly title' : ''); setById('familyNumber', textMode === 'expand' ? 3 : textMode === 'summarize' ? 1 : 0); fillWorkspace({ textarea: textSample, firstText: textMode, secondText: slugHas('case-converter') ? 'title' : textMode === 'rewrite' ? 'formal' : textMode === 'clean' ? 'trim' : 'mode', thirdText: textMode === 'rewrite' ? 'polished version' : slugHas('slug-generator') ? 'seo friendly title' : '', number: textMode === 'expand' ? 3 : textMode === 'summarize' ? 1 : 0, selects: [textMode], selectKeywords: [textMode] }); } savePremiumState(); if (btnRun) btnRun.click(); }; applyPremiumState(readPremiumState()); [premiumControls.preset, premiumControls.detail, premiumControls.exportMode, premiumControls.theme, premiumControls.autoSave, premiumControls.autoCopy, ...Object.values(premiumExtraControls)].forEach(el => { if (!el) return; el.addEventListener('change', savePremiumState); }); if (premiumControls.loadExample) premiumControls.loadExample.addEventListener('click', loadExample); if (premiumControls.applyFamily) premiumControls.applyFamily.addEventListener('click', applyFamilySettings); if (premiumControls.savePreset) premiumControls.savePreset.addEventListener('click', savePremiumState); if (premiumControls.resetPreset) premiumControls.resetPreset.addEventListener('click', () => { sessionStorage.removeItem(premiumKey); applyPremiumState(premiumDefaults); if (primaryField) { primaryField.value = ''; primaryField.dispatchEvent(new Event('input', { bubbles: true })); } }); if (premiumControls.autoSave && primaryField) { primaryField.addEventListener('input', () => { if (premiumControls.autoSave.checked) savePremiumState(); }); } if (typeof btnRun !== 'undefined' && typeof outEl !== 'undefined' && btnRun && outEl) { btnRun.addEventListener('click', () => { setTimeout(() => { const state = readPremiumState(); if (state.autoCopy && outEl.value) navigator.clipboard.writeText(outEl.value).catch(() => {}); }, 500); }); } if (premiumControls.preset && premiumDefaults.preset) premiumControls.preset.value = premiumDefaults.preset; if (premiumControls.detail && premiumDefaults.detail) premiumControls.detail.value = premiumDefaults.detail; const slugMap = { 'json-formatter': 'jsonFormatter', 'base64-encoder-decoder': 'base64', 'hash-generator': 'hashGenerator', 'url-encoder-decoder': 'urlEncoder', 'case-converter': 'caseConverter', 'password-generator': 'passwordGenerator', 'markdown-to-html': 'markdownPreviewer', 'color-converter': 'colorConverter', 'gradient-generator': 'gradientGenerator', 'unit-converter': 'unitConverter', 'epoch-converter': 'epochConverter', 'csv-to-json': 'csvJsonConverter', 'diff-checker': 'diffChecker', 'image-compressor': 'imageCompressor', 'qr-code-generator': 'qrGenerator', 'photo-paint-and-drawing-canvas': 'canvasEditor', 'svg-vector-code-editor': 'canvasEditor' }; const currentSlug = "domain-age-checker"; const targetDashSlug = slugMap[currentSlug] || currentSlug; const btnOpenWorkspace = document.getElementById('btnOpenInWorkspace'); const targetInput = document.querySelector('textarea, input[type="text"], input[type="number"]'); if (targetInput) { targetInput.addEventListener('input', () => { sessionStorage.setItem('omnitool-temp-input', targetInput.value); }); } if (btnOpenWorkspace) { btnOpenWorkspace.addEventListener('click', () => { if (targetInput) { sessionStorage.setItem('omnitool-temp-input', targetInput.value); } window.location.href = `../dashboard.html#${targetDashSlug}`; }); } });

Developer Scratchpad

Copied to clipboard!