2013-10-21 45 views
-1

我使用jQuery一些<th><td>元件附加到一個表中的多個行的表中的行元素:Greasemonkey的腳本忽略附加到使用jQuery

$(selector).filter(function() { 
    //jQuery finds some cells, evaluates them and generates new cell content 
    $(this).parent().append('<td>' + FormattedDate + '</td>'); 
});   

//Some code here generates counts 

for(var i = column_count; i > header_count; i--) { 
    $('.result_table tr:first').append("<th>test</th>"); 
}   

然後,我加載this Greasemonkey script是應該使整桌可分類。但是,在我使用jQuery添加單元格之前,Greasemonkey腳本只能對列表中的列進行排序。我怎樣才能使它在所有列上工作?

+0

請不要浪費你的時間告訴我,我應該只是做的Greasemonkey中的單元的加入腳本。這不是我問的問題。 – Keyslinger

+0

大多數greasemonkey腳本在頁面加載時加載。你在做什麼來確保只有在你的代碼修改了表後,greasemonkey腳本纔會初始化它自己? –

+0

你的jQuery是否一次在'$(document).ready'上運行,還是間歇性的AJAX事件?這是您控制的頁面,還是另一個添加計數的GM腳本? –

回答

0

如果不更改Greasemonkey腳本,則無法執行此操作。但是,在這種情況下,這很容易,因爲目標頁面只是更改表格一次,並執行它$(document).ready(通常爲DOMContentLoaded)。

所以,如果你設置的Greasemonkey腳本在窗口load運行,那麼它會在桌子已被修改後運行。

對於this particular script,只是改變從上線:

var allTables = window.document.documentElement.getElementsByTagName ("TABLE"); 
CODEBOX.forEach (allTables, function (table){ 
    CODEBOX.tabsorter.processTable (table); 
}); 

要:

window.addEventListener ("load", function() { 
    var allTables = window.document.documentElement.getElementsByTagName ("TABLE"); 
    CODEBOX.forEach (allTables, function (table){ 
     CODEBOX.tabsorter.processTable (table); 
    }); 
}); 
相關問題