Greasemonkey - 在Google Voice中的消息框的textarea中输入消息

时间:2011-07-23 21:42:22

标签: javascript greasemonkey google-voice

我正在尝试编写一个脚本,该脚本会将文本发送到带有我选择的消息的数字,但我仍然坚持这一部分。

我可以通过执行以下操作将号码传入Google语音“收件人”字段:

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

但我无法使用以下内容将消息传递到“消息”字段:

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

源代码块如下所示:

http://pastebin.com/2LrhLZXc

谢谢!非常感谢您的协助。

1 个答案:

答案 0 :(得分:0)

由于它是谷歌,该页面可能基于ajax。这意味着gc-quicksms-text2不会马上出现。事实上,它是“text2”表明这些<textarea>可能并不总是具有相同的ID;它们可能是自动编号的。

请尝试以下方法:

  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 console。控制台报告了什么?