Greasemonkey - ввод сообщения в текстовую область окна сообщения в Google Voice - PullRequest
0 голосов
/ 24 июля 2011

Я пытаюсь написать сценарий, который будет отправлять текст на номер с сообщением по моему выбору, но я застрял на этой части.

Я могу передать номер в Google VoiceВ поле «Кому» выполните следующие действия:

document.getElementById("gc-quicksms-number").value = number;

, но я не могу передать сообщение в поле «Сообщение» следующим образом:

document.getElementById("gc-quicksms-text2").value = "Error detected";

Блок кода вИсточник выглядит так:

http://pastebin.com/2LrhLZXc

Спасибо!Ваша помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 июля 2011

Так как это Google, эта страница, вероятно, в значительной степени основана на AJAX. Это означает, что gc-quicksms-text2 не там сразу. Тот факт, что это «text2» предполагает, что эти <textarea> не всегда могут иметь одинаковый идентификатор; они могут быть пронумерованы автоматически.

Попробуйте следующее:

  1. Установите Firebug , если вы этого еще не сделали.
  2. Загрузите и запустите этот скрипт:

    // ==UserScript==
    // @name            _Google voice starter
    // @include         http://www.google.com/googlevoice/*
    // @require         http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
    // ==/UserScript==
    
    unsafeWindow.console.clear();
    var report = unsafeWindow.console.info;
    report ('GM Script start');
    
    
    var timerHandle = setInterval (checkForSMS_Textboxes, 777);
    
    function checkForSMS_Textboxes () {
        var SMS_Textboxes   = $('textarea.gc-quicksms-text');
        var SMS_Textboxes   = $('textarea');
    
        var newTB_ids       = SMS_Textboxes.map ( function () {
                                var jThis   = $(this);
                                if (jThis.prop ('bFoundBefore') )
                                    return null;
                                else {
                                    jThis.prop ('bFoundBefore', true);
                                    jThis.text ('Can you see me?');
                                    return this.id ? this.id : 'null';
                                }
                            } ).get ().join (', ');
    
        if (newTB_ids)
            report ('Found new textarea(s): ', newTB_ids);
    }
    
  3. Код должен заполнять поля SMS и сообщать о каждой новой текстовой области на консоль Firebug . Что сообщает консоль?

...