2015-04-16 41 views
2

我側欄被相關問題和熱門網絡問題分散注意,所以我編寫了一個Greasemonkey腳本來隱藏它們。該腳本適用於Stack Exchange站點,但不適用於Stack Overflow本身。爲什麼我的Greasemonkey JQuery腳本隱藏邊欄工作在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緩存,用於檢查元素,以確定我使用了正確的DIV ID,但沒有成功。

+0

他們可以故意去掉域名重定向上的www,但從未寫過/看過一個油猴腳本。該通配符不起作用AFAIK –

+0

它對meta有效嗎?因爲我的第一個想法是Stack Overflow在'http:// stackoverflow.com'沒有'www'。 –

+0

我正在投票結束,因爲問題原來是關於您放入的實際網站的具體問題,實際上並沒有真正與代碼或方法有關的任何內容,因此不太可能幫助未來的觀衆。 – starsplusplus

回答

2

在這種情況下,更好的解決方案是使用@matchDoc代替@include@match智能處理領先*.,並提供更好的性能和安全性,特別是在Chrome上。

@match指令完成:

  1. 匹配所有堆棧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/* 

注:在實際的腳本,我建議你也排除某些堆棧交易所的網頁,除非你明確地編碼它們。

請參閱"Complete list of sites to @include/@match into my script?"關於Stack Apps

+1

謝謝你的幫助;這是一個比我的更豐富(和一般)的答案。 –

+0

不客氣,樂意效勞。 –

2

解決方法是http://stackoverflow.com未被通配符http://*.stackoverflow.com/*捕獲,因此添加另一個包含行解決了該問題。

// ==UserScript== 
// @name  minimal-stack-exchange 
// @include  http://www.stackoverflow.com/* 
// @include  http://www.stackexchange.com/* 
// @include  http://*.stackexchange.com/* 
// @include  http://*.stackoverflow.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(); 
相關問題