[object Object]

← back to Purelymail Fleet Viewer

viewer: add noreferrer to every target=_blank anchor

21a690a307ecd2783940284b62835ab74fe125ed · 2026-05-19 18:33:22 -0700 · SteveStudio2

Files touched

Diff

commit 21a690a307ecd2783940284b62835ab74fe125ed
Author: SteveStudio2 <steve@designerwallcoverings.com>
Date:   Tue May 19 18:33:22 2026 -0700

    viewer: add noreferrer to every target=_blank anchor
---
 public/index.html | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/public/index.html b/public/index.html
index 7acdb01..08d199a 100644
--- a/public/index.html
+++ b/public/index.html
@@ -251,7 +251,7 @@ function shotFail(img, domain, h){
 function frameHTML(domain){
   const r = embedResults[domain];
   const open = '<div class="frame-link"><a href="https://'+domain
-    +'" target="_blank" rel="noopener">open https://'+domain+' ↗</a></div>';
+    +'" target="_blank" rel="noopener noreferrer">open https://'+domain+' ↗</a></div>';
   if (r && r.embeddable){
     return '<iframe src="https://'+domain
       +'" loading="lazy" referrerpolicy="no-referrer"></iframe>'+open;
@@ -315,7 +315,7 @@ function drawGrid(){
       + '<img class="shot" src="/api/shot?domain='+encodeURIComponent(d.domain)
       + '" loading="lazy" onerror="shotFail(this,\''+d.domain+'\',230)">'
       + '<div class="meta"><div class="dn"><a href="https://'+d.domain
-      + '" target="_blank" rel="noopener">'+d.domain+'</a></div>'
+      + '" target="_blank" rel="noopener noreferrer">'+d.domain+'</a></div>'
       + '<div class="st">'+deliv+' '+iss+'</div></div></div>';
   }).join('') || '<div class="muted">no domains match</div>';
 }
@@ -326,7 +326,7 @@ function drawTable(){
   $('#domains tbody').innerHTML = rows.map(d=>{
     const deliv = d.deliverable ? pill('ok','yes') : pill('bad','no');
     const safe = d.domain.replace(/[^a-z0-9]/gi,'-');
-    const link = '<a href="https://'+d.domain+'" target="_blank" rel="noopener" '
+    const link = '<a href="https://'+d.domain+'" target="_blank" rel="noopener noreferrer" '
       + 'onclick="event.stopPropagation()">'+d.domain+'</a>';
     return '<tr class="drow" onclick="toggleRow(\''+safe+'\',\''+d.domain+'\')">'
       + '<td><span class="caret" id="caret-'+safe+'">▸</span> '+link+'</td>'
@@ -362,7 +362,7 @@ function pickHeroDomains(n){
   return out;
 }
 function heroCard(domain){
-  return '<a href="https://'+domain+'" target="_blank" rel="noopener">'
+  return '<a href="https://'+domain+'" target="_blank" rel="noopener noreferrer">'
     + '<img src="/api/shot?domain='+encodeURIComponent(domain)
     + '" loading="lazy" onerror="shotFail(this,\''+domain+'\','+(heroMode==='1up'?460:225)+')">'
     + '<span class="hero-cap">'+domain+'</span></a>';

← 336eef0 server: 404 bak/pre/orig/rej/swp/tilde paths before static l  ·  back to Purelymail Fleet Viewer  ·  Add per-site favicon (kills /favicon.ico 404) 4b8c997 →