2011-07-23 63 views
0

我正在嘗試編寫一個腳本,它會將文本發送到一個帶有我選擇的消息的數字,但我被困在這部分中。Greasemonkey - 在Google Voice中的消息框的textarea中輸入消息

我能夠做通一個數字,谷歌語音「到」字段中輸入以下:

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

,但我無法將消息傳遞到「消息」字段此:

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

的代碼在源塊看起來像這樣:

http://pastebin.com/2LrhLZXc

謝謝!您的幫助將不勝感激。

+0

'document.getElementById(「gc-quicksms-text2」)。value =「檢測到錯誤」;'在Firefox中工作得很好。腳本中必須有其他內容。粘貼或鏈接到它的源代碼。 –

+0

我在腳本中只有這兩行,第一部分工作正常,但不是第二部分。 – loopx

+0

在測試腳本我的意思是,只是這兩行,到字段填充正常,但不是消息 – loopx

回答

0

既然是Google,那麼這個頁面很可能是基於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. 代碼應填寫短信箱和報告每個新文本區的Firebug console。控制檯報告什麼?