Last active
July 15, 2016 02:13
-
-
Save khsk/09eb0841ca55b4d198cae7ac85f37689 to your computer and use it in GitHub Desktop.
dots.の特定のタグを非表示にするユーザースクリプト ref: http://qiita.com/khsk/items/2a81abb930debd52fa95
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name Hide specific tag | |
| // @namespace khsk | |
| // @description 特定のタグを持つイベントを非表示にする | |
| // @include http://eventdots.jp/event/search* | |
| // @version 1 | |
| // @grant none | |
| // ==/UserScript== | |
| var ignoreTags = ['非表示にしたいタグ'] | |
| var isHideTag = nodes => { | |
| var hide = false | |
| Array.prototype.forEach.call(nodes.children, tag => { | |
| if (hide) { | |
| // breeakはできないので、一度trueになったら早期continue | |
| // ↓のifに!hide && でもいいけど(今の形は意味がうすそう) | |
| return; | |
| } | |
| if (ignoreTags.indexOf(tag.innerText) !== -1) { | |
| hide = true | |
| } | |
| }) | |
| return hide | |
| } | |
| var getEvetnsConsiderOffset = className => { | |
| events = document.getElementsByClassName(className) | |
| // 既存のイベントまで取得するので、返すのは常に最後の15件=追加読み込み分(Arrayになる) | |
| return Array.prototype.slice.call(events, -15) | |
| } | |
| var hideEvents = events => { | |
| Array.prototype.forEach.call(events, event => { | |
| // タグなしイベントに対応 | |
| if (event.style.display !== 'none' && !!event.getElementsByClassName('tags')[0] && isHideTag(event.getElementsByClassName('tags')[0])) { | |
| event.style.display = 'none' | |
| } | |
| }) | |
| } | |
| var mo = new MutationObserver((data1, data2) => { | |
| var events = getEvetnsConsiderOffset('eventlist clearFix') | |
| hideEvents(events) | |
| }) | |
| var list = document.getElementsByClassName('col-full')[0] | |
| mo.observe(list, {childList: true, subtree:true}) | |
| // 初期表示分に適用 | |
| var events = getEvetnsConsiderOffset('eventlist clearFix') | |
| hideEvents(events) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment