javascript - 为什么我隐藏侧边栏的 Greasemonkey JQuery 脚本在 Stack Exchange 网站上有效,但在 Stack Overflow 上无效?

标签 javascript jquery greasemonkey

侧边栏的相关问题和网络热点问题让我分心,所以我写了一个 Greasemonkey 脚本来隐藏它们。该脚本适用于 Stack Exchange 站点,但不适用于 Stack Overflow 本身。

// ==UserScript==
// @name        minimal-stack-exchange
// @include     http://www.stackoverflow.com/*
// @include     http://www.stackexchange.com/*
// @include     http://*.stackexchange.com/*
// @include     http://*.stackoverflow.com/*
// @description Hide distracting links from StackExchange pages
// @require     http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant       GM_addStyle
// ==/UserScript==

$("#sidebar").hide();
$("#herobox").hide();
$("#footer").hide();

我已经清除了我的 Firefox 缓存,使用 Inspect Element 来确定我使用的是正确的 div ID,但没有成功。

最佳答案

在这种情况下,更好的解决方案是使用 @matchDoc而不是 @include@match 智能地处理前导 *. 并提供更好的性能和安全性,尤其是在 Chrome 上。

以下 @match 指令完成:

  1. 匹配所有 Stack Exchange 网站。 (问题@includes 遗漏了一些重要的问题。)
  2. 同时匹配 http://https://,因为所有 Stack Exchange 站点都支持 SSL。
// @match       *://*.askubuntu.com/*
// @match       *://*.mathoverflow.net/*
// @match       *://*.serverfault.com/*
// @match       *://*.stackapps.com/*
// @match       *://*.stackexchange.com/*
// @match       *://*.stackoverflow.com/*
// @match       *://*.superuser.com/*

注意:对于实际脚本,我建议您也排除某些 Stack Exchange 页面,除非您明确为它们编码。

参见 "Complete list of sites to @include / @match into my script?"Stack Apps 上。

关于javascript - 为什么我隐藏侧边栏的 Greasemonkey JQuery 脚本在 Stack Exchange 网站上有效,但在 Stack Overflow 上无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29682724/

相关文章:

javascript - jquery/Javascript 语法

javascript - 禁用由 CakePHP FormHelper 生成的按钮

javascript - 如何使用 Greasemonkey 更改 JSON 对象数据

Greasemonkey 上的 Javascript、与 Firefox/Chrome 中的插件相比的约束和限制因素?

javascript - 除非窗口获得焦点,否则文本字段不会获得焦点

javascript - d3-单击选择选项时更新条形图

javascript - 减少并求和数组位置

javascript - 如何为选择列表的自定义指令实现 ng-change?

javascript - 我需要为 javascript 数组设置默认选项(下拉字段)

javascript - 点击坐标