Я хочу изменить размер текста с капчи, чтобы его было легче увидеть с помощью Greasemonkey.

Как я могу это сделать?

Например, у меня есть эта капча:

<div id="recaptcha_image" style="width: 300px; height: 57px; ">
  <img style="display:block;" height="57" width="300" src="http://www.google.com/recaptcha/api/image?c=03AHJ_VuuqeICMpU36GlHCSchBzERwiDzTH4A1RHobtEpbbSK5lWC47EVkgeuF_ause8bnYTHGhjRr_GFiVMh9e4sZFXIBlv4-vcY7WXNjtBHhVmIl2Z5tqK_CY5hRZjtr-MWDUrBOr7mQE0ZqfU8XeeUeXLM5cxcwEQ">
</div>

Я хочу изменить height="57" и width="300" со второй строки (из стиля изображения) на 85 и 450 соответственно.

Изменение в проверку работает правильно, но как я могу сделать это всегда с Greasemonkey?

5
Bruno 'Shady' 21 Июл 2010 в 21:37

3 ответа

Лучший ответ

Эти userContent.css записи могут работать:

div#recaptcha_image,
div#recaptcha_image > img {
  width: 450px !important;
  height: 85px !important;
}
2
Neil 15 Янв 2011 в 00:10

Поскольку это Greasemonkey, я предполагаю, что вы используете достаточно актуальную версию Firefox. В этом случае вы можете использовать querySelector:

var query = document.querySelector("#recaptcha_image > img");
if (query) {
    query.style.width = "450px !important";
    query.style.height = "85px !important";
}

Если это не сработает, вместо этого вы можете попробовать установить атрибуты img:

var query = document.querySelector("#recaptcha_image > img");
if (query) {
    query.setAttribute("width", "450");
    query.setAttribute("height", "85");
}

Если это не работает, вы можете попробовать установить поле и img:

var element = document.getElementById("recaptcha_image");
if (element) {
    element.style.width = "450px !important";
    element.style.height = "85px !important";
}

var query = element.querySelector("img");
if (query) {
    query.setAttribute("width", "450");
    query.setAttribute("height", "85");
}
1
Pauan 30 Сен 2010 в 15:19

Делать:

var img = document.evaluate("//div[@id='recaptcha_image']/img", document, null, 9, null).singleNodeValue;
img.setAttribute('width', '85');
img.setAttribute('height', '450');

Если recaptcha находится в iframe, тогда @include url iframe, а не url родителя, но учтите, что это, вероятно, изменит размер recaptcha на каждом сайте, поэтому вы можете проверить, что window.top.location для window.top - это нужное место.

0
erikvold 23 Июл 2010 в 04:18