2012-04-06 2 views
0

Вчера я обнаружил, что при вводе текста поиска в Google, что моя история поиска внезапно перестала отображаться. Я использую url https://www.google.com/webhp?complete=0, чтобы предотвратить появление новых предложений. Это работало отлично, но теперь Google сделал что-то, чтобы не допустить этого.Попытка изменить текстовое поле поиска Google с помощью Greasemonkey

Я использую Firefox и устанавливаю Greasemonkey. У меня был интерес к изучению сценария в Greasemonkey, и это, кажется, подходящее время для начала обучения. Есть ли у кого-нибудь примеры изменения формы ввода в Google в другом стиле, чтобы просмотреть историю поиска? Я искал и нашел примеры модификаций текстовых полей, но они не работают с конкретным стилем ввода, используемым Google.

ТИА,
Brian

ответ

1
// ==UserScript== 
// @name   re enable autocomplete 
// @namespace  http://gcomplete.user.js 
// @description  
// @include   htt*://*.google.com/webhp?complete=0 
// ==/UserScript== 
//////////////////////////////////////////////// 

    function doIt(){ 
     document.getElementById("lst-ib").autocomplete = "on"; 
     window.setTimeout(doIt, 5000); // wait 5 sec and reapply changes, looped. 
    } 
    window.setTimeout(doIt, 500);  // wait half a second and apply changes. 

это может быть не точный код вам нужно, но оно должно быть довольно близко.
Я выбрал цикл, потому что я ленив и потому, что текстовое поле, кажется, уничтожено и воссоздано хотя бы один раз.
«LST-IB» является идентификатором текстового поля вы хотите, и он имеет свойство «автозаполнение», который Google услужливо устанавливает в положении «выключено»

+0

Wow! Я не получил уведомление о том, что на мой вопрос был дан ответ (4 месяца назад!), Поэтому я приношу свои извинения за ответ. Я пробовал код, который вы предоставили, и он работает до тех пор, пока вы выходите из текстовой области, а затем возвращаете обратно в текстовую область. Я сделал несколько модов для вашего скрипта, и, похоже, он устранил проблему - я разместил их в отдельном ответе здесь. Спасибо за вашу помощь по этому поводу. Опять же, мои извинения за крайне поздний ответ. –

+0

Это был 5-минутный ответ: P рад, что это помогает, приятно видеть, что Google изменил его снова после того, как я ответил, еще лучше, что вы его исправили: D – RozzA

1

Я попытался the code that RozzA provided, и она работает так долго, как вы щелкните текстовую область, а затем щелкните обратно в текстовую область. Я сделал следующие моды, и они, похоже, устранили проблему:

function doIt() { 
    document.getElementById("lst-ib").autocomplete = "on"; 
    document.getElementById("lst-ib").blur(); // disable focus 
    document.getElementById("lst-ib").focus(); // re-enable focus 

    // looping does not seem to be necessary. 
    // window.setTimeout(doIt, 5000); 
} 


window.setTimeout(doIt, 500);  // wait half a second and apply changes. 
Смежные вопросы