Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Дайте наставление по скрипту. Как вариант Greasemonkey (https://javascript.ru/forum/misc/49383-dajjte-nastavlenie-po-skriptu-kak-variant-greasemonkey.html)

kobrin13 11.08.2014 02:22

Дайте наставление по скрипту. Как вариант Greasemonkey
 
В общем дело обстоит так. Работа предстоит с Firefox.
Есть страница https://by.e-konsulat.gov.pl/Uslugi/...&IDPlacowki=93
Внизу страницы есть капча, но периодически, при большой нагрузке на сайт, ддосе и тд, страница загружается не полностью и капча не отображается.
Что делаем, когда загружается полупустая страница :
- Кликаем по центральной части страницы правой кнопкой и выбираем Inspect element;
- Ищем блок table#cp_tabFormularz.biale_tlo и справа снимаем флажок у visibility: hidden.
После этого капча появляется.
Но это все очень долго. Решил попробовать поставить Greasemonkey на Firefox и сделать скрипт, который загружал бы страницу с уже исправленной строкой, те вместо <table id="cp_tabFormularz" width="650" class="biale_tlo" style="visibility: hidden"> загружал бы <table id="cp_tabFormularz" width="650" class="biale_tlo" style=""> ну или что-то вроде того.
Это вообще реально сделать или у меня дурные мысли на ночь глядя поперли?
Просто это же можно как-то сделать, но вот с какой стороны подойти и как реализовать не могу придумать.
Помогите, если у кого есть мысли, может это все можно сделать намного проще и быстрее, а я лезу в дебри. Заранее спасибо.

jsnb 11.08.2014 09:08

Если надо только CSS поменять, то поставь stylish и там задай нужные правила. Что-нить типо такого:
table#cp_tabFormularz {visibility: visible !important;}

kobrin13 11.08.2014 09:48

jsnb,
я очень извиняюсь, тк далек от скриптов, а какой вид скрипт должен иметь?
// ==UserScript==
// @name Виза
// @namespace Виза
// @description Виза
// @include https://by.e-konsulat.gov.pl/Uslugi/...&IDPlacowki=93
// @version 1
// @grant none
// ==/UserScript==
table#cp_tabFormularz {visibility: visible !important;}
типа этого или как?

jsnb 11.08.2014 11:34

Я про stylish писал, а не про Greasemonkey.

Aetae 11.08.2014 11:44

Можно вообще без расширений:
%AppData%\Mozilla\Firefox\Profiles\<имя профиля>\chrome\userContent.css (если нет - создать)
А там добавить правило:
@-moz-document url-prefix("https://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx"){
  table#cp_tabFormularz {visibility: visible !important;}
}
stylish по сути и не нужен.)

P.S. Да, и через Greasemonkey тоже можно это сделать.
Стиляими:
// ==UserScript==
// @name Виза
// @namespace Виза
// @description Виза
// @include htt*!**/!*ps://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx*
// @version 1
// @grant none
// ==/UserScript==
document.body.insertAdjacentHTML('afterbegin', '<style>table#cp_tabFormularz {visibility: visible !important}</style>');

Или напрямую:
// ==UserScript==
// @name Виза
// @namespace Виза
// @description Виза
// @include htt*!**/!*ps://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx*
// @version 1
// @grant none
// ==/UserScript==
document.querySelector('table#cp_tabFormularz').style.visibility = 'visible';

kobrin13 11.08.2014 15:53

Aetae,
jsnb,
что самое интересное, что не один способ не помогает((( стоит галочка и не убирается(((

kobrin13 11.08.2014 16:10

вот как-то так

kobrin13 11.08.2014 17:55

помогло вот так
Код:

document.getElementById('cp_tabFormularz').style.visibility = "";
но работает только через F12 - консоль
а в greasemonkey или stylish отказывается

Aetae 11.08.2014 22:21

Возможно из-за того что до конца не грузится и не срабатывает, попробуй так:
// ==UserScript==
// @name Виза
// @namespace Виза
// @description Виза
// @include     htt*!**/!*ps://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx*
// @version     1
// @grant       none
// @run-at      *!*document-start*/!*
// ==/UserScript==
alert('скрипт работает:' + document.querySelector('head')); //для проверки, потом удалить
document.querySelector('head').insertAdjacentHTML('beforeend', '<style>table#cp_tabFormularz {visibility: visible !important}</style>');

kobrin13 11.08.2014 22:54

Aetae,
аналогично

Aetae 12.08.2014 00:11

Сообщение то выводится?

kobrin13 12.08.2014 00:38

Aetae,
сообщение да, а вот галочка не убирается

Aetae 12.08.2014 00:43

Значит должно работать. Хъ знает в чём у вас проблема. На тестовых страницах всё ок, а ваша не доступна всё равно.

Попробуйте такой варварский вариант:
// ==UserScript==
// @name Виза
// @namespace Виза
// @description Виза
// @include     htt*!**/!*ps://by.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx*
// @version     1
// @grant       none
// @run-at      document-start
// ==/UserScript==
setInterval(function(){
  var cp_tabFormularz = document.getElementById('cp_tabFormularz');
  if(cp_tabFormularz) cp_tabFormularz.style.visibility = "";
},100)

kobrin13 12.08.2014 22:15

Aetae,
вот это работает, правда только если @include полный поставить


Часовой пояс GMT +3, время: 08:07.