/* 弹窗样式保持不变 */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.85); z-index: 9999; padding: 20px; box-sizing: border-box; } .modal.active { display: block; } .modal-content { width: 100%; height: 100%; position: relative; } .close-btn { position: absolute; /* top: -40px;*/ right: 0; color: white; font-size: 28px; cursor: pointer; width: 36px; height: 36px; background: #333; border-radius: 50%; display: flex; align-items: center; justify-content: center; } #catalog-iframe { width: 100%; height: 100%; border: none; background: white; border-radius: 8px; } /* 图片悬停效果(针对祖父级带ImgEcatalog类的结构) */ .ImgEcatalog img { cursor: pointer; transition: transform 0.3s; } .ImgEcatalog:hover img { transform: scale(1.03); } window.addEventListener('load', function() { // 关键:直接选中所有带ImgEcatalog类的祖父级DIV const grandparentDivs = document.querySelectorAll('.ImgEcatalog'); const catalogLinks = []; grandparentDivs.forEach(grandparent => { // 从祖父级DIV中查找嵌套的a标签(无论中间隔多少层) const link = grandparent.querySelector('a'); if (link) { catalogLinks.push(link); // 强制移除target属性,阻止新标签页打开 link.removeAttribute('target'); // 双重保障:即使有其他脚本添加target,也强制覆盖 link.target = '_self'; } }); // 绑定点击事件,拦截跳转 catalogLinks.forEach(link => { link.addEventListener('click', function(e) { // 彻底阻止默认行为 e.preventDefault(); e.stopPropagation(); // 获取目录册链接 const src = this.getAttribute('href'); if (src) { document.getElementById('catalog-iframe').src = src; document.querySelector('.modal').classList.add('active'); document.body.style.overflow = 'hidden'; } }); }); // 关闭弹窗逻辑 document.querySelector('.close-btn').addEventListener('click', function() { const modal = document.querySelector('.modal'); modal.classList.remove('active'); document.getElementById('catalog-iframe').src = ''; document.body.style.overflow = ''; }); document.querySelector('.modal').addEventListener('click', function(e) { if (e.target === this) { this.classList.remove('active'); document.getElementById('catalog-iframe').src = ''; document.body.style.overflow = ''; } }); });

Views: 375