Дано: html: <p>1<table><tr><td>2</td></tr></table>3</p> css: * { color: #000; } p { color: #080; } p table { color: #008; } Какого цвета 1, 2 и 3?
var x = document.querySelectorAll('p'); // x = NodeList [ <p>, <p> ] x.forEach(function(a){ console.log(a); }); // TypeError: x.forEach is not a function Array.prototype.forEach.call(x, function(a){ console.log(a); }); // <p> // <p> Т.е. всё, конечно, правильно, но где же удобство, «юзерфрендливость»?
<Multi_key> <d> <c> : "℃" U2103 # degree celsius <Multi_key> <D> <C> : "℃" U2103 # degree celsius <Multi_key> <D> <c> : "℃" U2103 # degree celsius <Multi_key> <d> <C> : "℃" U2103 # degree celsius <Multi_key> <d> <k> : "K" U212A # degree kelvin <Multi_key> <D> <K> : "K" U212A # degree kelvin <Multi_key> <D> <k> : "K" U212A # degree kelvin <Multi_key> <d> <K> : "K" U212A # degree kelvin
Юзерскрипт скрывает картинки *nsfw и *18+ постов (хватит изобретать новые теги, упоротые!) пустой рамкой. Для отображения нужно клацнуть мышкой. В комментариях к посту (и самом посте) скрываются вообще все картинки. По крайней мере должны, если разметка всё-таки одинаковая. Если этого не нужно, можно вызов juick_hide_in_comments() закомментировать. Вроде работает. Потом ещё потестирую. // ==UserScript== // @id juick-nsfw-hider // @name Juick NSFW hider // @version 1.0 // @namespace // @author Tenno Seremel // @description // @include http://juick.com/* // @include https://juick.com/* // @run-at document-end // ==/UserScript== (function(){ var HIDE_TAGS = ['nsfw', '18+']; var placeholder = document.createElement('span'); placeholder.setAttribute( 'style', 'background: #FFF; outline: 1px dashed #ccc; position: absolute; left: 0; top: 0; width: 100%; height: 100%; cursor: pointer;' ); placeholder.setAttribute('title', 'Показать.'); // add_to_child - add to .ir child (list) or directly (separate post with comments) function insert_cover(post_el, add_to_child) { var image_block = (add_to_child) ? post_el.querySelector('.ir') : post_el; if (image_block) { image_block.style.position = 'relative'; var new_cover = placeholder.cloneNode(true); new_cover.addEventListener('click', remove_cover, false); image_block.appendChild(new_cover); } } function remove_cover(ev) { var target = ev.target; target.parentNode.removeChild(target); } function juick_hide_in_list() { var posts = document.querySelectorAll('#content > article'); for (var i = 0, len = posts.length; i < len; i++) { var current = posts[i]; var tag_els = current.querySelectorAll('.u > a'); // skip first as it's a username for (var j = 1, len2 = tag_els.length; j < len2; j++) { var current_tag = tag_els[j].textContent.trim().toLowerCase(); if (HIDE_TAGS.indexOf(current_tag) !== -1) { insert_cover(current, true); break; } } } } function juick_hide_in_comments() { var tag_els = document.querySelectorAll('.msgthread .msg-tags > a'); for (var i = 0, len = tag_els.length; i < len; i++) { var current_tag = tag_els[i].textContent.trim().toLowerCase(); if (HIDE_TAGS.indexOf(current_tag) !== -1) { var posts = document.querySelectorAll('#content .msg .msg-media'); for (var i = 0, len = posts.length; i < len; i++) { insert_cover(posts[i]); } return; } } } juick_hide_in_list(); juick_hide_in_comments(); })();
Кастомный CSS стиль для списков на анилисте. Уж больно тамошние загружаемые шрифты ГЭ. font-size: medium недостаточно, дожили! Пришлось rem'ы. Заодно и чёрный цвет букв и подсветка строки при ховере. #lists, #lists th, #lists td { font: medium sans-serif; font-size: 1rem; } #lists .list a, #lists h3 { color: #000; } #lists .rtitle:hover td { background: #323841; background-image: linear-gradient(to bottom, #3D444E 0%, #323841 100%); color: #FFF; } #lists .rtitle:hover a, #lists .rtitle:hover .plus { color: #FFF; }
Расширитель веб-морды жуйка для Stylish. Для не-Firefox браузеров @-moz-document domain("juick.com") и соответствующие { и } не нужно, скорее всего. В старой Опере, например, было не нужно. Кого размер шрифтов и раньше устраивал html, input { font-size: medium !important; } может не писать. @namespace url(http://www.w3.org/1999/xhtml); @-moz-document domain("juick.com") { html, input { font-size: medium !important; } html { padding-left: 8px !important; padding-right: 8px !important; } body, body > header, #content, #footer, #mtoolbar, .msg-cont { width: auto !important; } #newmessage textarea, .msg-comment textarea { width: 100% !important; } article p { overflow: visible !important; } article p.ir { clear: right !important; } .ta-wrapper { display: block !important; } } О багах можно писать в комментариях. «Ненужно» писать ненужно, я вас и так слышу :}
Коротко о красоте языка и жабаскрипте :} function abc(x){ console.log(x); }(1); (function abc(x){ console.log(x); })(2);
Наконец-то дошли руки скрыть все прикреплённые темы на ЛОРе. Скриптом т.к. ! (selector subject) из CSS4 ещё не реализовано. // ==UserScript== // @id lor-fixer // @name LOR fixer // @version 1.0 // @namespace // @author Tenno Seremel // @description // @include http://www.linux.org.ru/forum/* // @include https://www.linux.org.ru/forum/* // @run-at document-start // ==/UserScript== (function(){ function on_load() { var pinned_posts = document.querySelectorAll('.message-table img[alt="Прикреплено"]'); for(i = 0, len = pinned_posts.length; i < len; i++) { pinned_posts[i].parentNode.parentNode.style.display = "none"; } } document.addEventListener("DOMContentLoaded", on_load, false) })();
Вот это код %) ><b/> тут номера телефонов </b/>
Жуйкоблокер постов по тегам (Scriptish). Если у вас GreaseMonkey, а не Scriptish отредактируйте шапку или создайте скрипт в GUI (что должно создать шапку какую надо) и скопируйте код. Если вдруг в GreaseMonkey не работает, то можно попробовать скопировать только то, что внутри on_load(). cast @beard // ==UserScript== // @id juick-blacklist // @name juick-blacklist // @version 1.0 // @namespace // @author Tenno Seremel // @description // @include http://juick.com/* // @run-at document-start // ==/UserScript== (function(){ //- function on_load() { var black_list = ["созвездие", "звездолёт", "звездолет", "закадровое"]; var messages = document.getElementsByClassName("msg"); for (var i = 0, len = messages.length; i < len; i++) { var current = messages[i]; var tags = current.querySelectorAll(".msg-tags a"); for (var j = 0, len2 = tags.length; j < len2; j++) { var current_tag = tags[j]; if (black_list.indexOf(current_tag.textContent.trim().toLowerCase()) != -1) current.style.display = "none"; } } } document.addEventListener("DOMContentLoaded", on_load, false) //- })();
Моё традиционное «вступление» CSS: * { color: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; margin: 0; padding: 0; } a img { border: none; } CSS он такой. Вроде бы наследование во все поля, но ВНЕЗАПНО дефолтные стили выбрасывают всё нойух.
route: namespace :admin do resources :images, :except => :index do get '(:gallery_id)', :action => :new end end view: = link_to t('тратата'), new_admin_image_path(gallery_id: gallery[:id]) Ссылка получается вида «/admin/images/new?gallery_id=1», а не «/admin/images/new/1». Что я делаю не так? %)
Что-то ваш хвалёный jQuery не спасает от превращения JS-кода в лапшу :} $(this).find(".whatever").add( $(this).find(".elsewhere") ).on( "click", (function(i){ return function(){ run_something_here(i, $(this)); } })(index) )
># Check to make sure 64-bit systems can get 32-bit packages >if [ "$(dpkg --print-architecture)" = "amd64" ] && ! dpkg --print-foreign-architectures | grep i386 >/dev/null; then > sudo dpkg --add-architecture i386 >fi Мало того, что ненужно, так оно ещё и безобразничает :}
Больше никаких unload/beforeunload :3 Надо будет посмотреть, не сломалось ли что. // ==UserScript== // @id block-unload-events // @name Block unload events // @version 1.0 // @namespace // @author Tenno Seremel // @description // @include * // @run-at document-start // ==/UserScript== (function(){ function eat_event(e){ e.stopImmediatePropagation(); } window.addEventListener("beforeunload", eat_event, true); window.addEventListener("unload", eat_event, true); })();