如何阻止页面元素悬停时触发magnify函数?
阻止Hibid商品悬停时触发magnify函数的方法
方法一:浏览器控制台临时禁用(单次会话有效)
- 打开目标页面后按F12调出开发者工具,切换到Console标签
- 执行以下代码,直接把
magnify函数替换为空实现:
window.magnify = function() {};
- 要是函数是绑定在元素的鼠标事件上,也可以移除所有商品元素的相关事件:
document.querySelectorAll('.lot-item').forEach(item => { item.removeEventListener('mouseover', magnify); item.removeEventListener('mouseenter', magnify); });
注:页面刷新后需要重新执行这段代码
方法二:用户脚本持久化解决(永久生效)
用Tampermonkey这类用户脚本管理器可以让设置自动生效:
- 安装Tampermonkey插件
- 创建新脚本,粘贴以下代码:
// ==UserScript== // @name Disable Hibid Magnify on Hover // @namespace http://tampermonkey.net/ // @version 0.1 // @description Stop magnify function from triggering on Hibid lot hover // @match https://hibid.com/lots?q=cisco&status=OPEN // @grant none // ==/UserScript== (function() { 'use strict'; window.addEventListener('load', function() { // 直接覆盖magnify函数 window.magnify = function() {}; // 监听DOM变化,处理动态加载的商品 const observer = new MutationObserver((mutations) => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.classList?.contains('lot-item')) { node.removeEventListener('mouseover', window.magnify); node.removeEventListener('mouseenter', window.magnify); } }); }); }); observer.observe(document.querySelector('.lots-list'), { childList: true, subtree: true }); }); })();
- 保存脚本后刷新页面,以后访问该页面都会自动禁用magnify
方法三:CSS隐藏放大效果(仅视觉层面)
如果只是不想看到放大的视觉效果,不用改JS,直接加CSS隐藏放大容器:
.magnify-container { display: none !important; }
可以通过开发者工具的Elements面板找到对应类名,用自定义CSS功能添加,或者在用户脚本里注入这段CSS:
const style = document.createElement('style'); style.textContent = '.magnify-container { display: none !important; }'; document.head.appendChild(style);
内容的提问来源于stack exchange,提问作者tych0brahe
相关产品推荐
相关产品推荐

