Greasemonkey HTML многострочная замена - PullRequest
1 голос
/ 09 мая 2011

Я пытаюсь подделать информацию о странице, используя Greasemonkey, чтобы подшутить над моим другом, но, похоже, я не могу заставить его работать.

Существующий код выглядит примерно так:

<tr>
    <td align="left">05/08</td>
    <td>06:12 PM</td>
    <td align="left"><a href="JavaScript:openPAB('Steve Blank')">Steve Blank</a></td>
    <td>3 Hours/47Min</td>
    <td>Biathlon</td>
    <td align="right"></td>
</tr>


и превратить его в:

<tr>
    <td align="left">05/08</td>
    <td>10:00 PM</td>
    <td align="left"><a href="JavaScript:openPAB('Steve Blank')">Steve Blank</a></td>
    <td>Did not finish</td>
    <td>Disqualified</td>
    <td align="right"></td>
</tr>

Так что, в общем, я хочу, чтобы мой друг видел, что его результаты не в состоянии просто связываться с ним. Он не нашел его на своем компьютере, и я хотел бы сделать это, прежде чем он увидит это. Поскольку в конечном итоге это HTML, я предполагаю, что могу отбросить текст пробела, но я не уверен насчет специальных символов. Есть идеи?

1 Ответ

1 голос
/ 09 мая 2011

Обычно мы не пишем скрипты с нуля на SO.

Но, поскольку это по уважительной причине :) и относительно просто, вот начало:

// ==UserScript==
// @name            Improve X results
// @include         http://yourSite.com/somepath/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==

//--- Get the table rows to change.  Warning: Insufficient detail given!
var tableRowsToFix  = $("table > tr:gt(0)");  //-- This must change to match actual page

/*--- For each row, adjust key cells, per...
    Column  Description         Change
    ------  -----------------   --------------------------
       1    Date                None.
       2    ¿Finish? Time?      Change to "10:00 PM"?
       3    <link>              None.
       4    Elapsed Time        Change to "Did not finish".
       5    Qualification       Change to "Disqualified".
       6    <blank>             None.
*/
tableRowsToFix.each ( function (J) {

    //--- Adjust column 2,  "Finish Time".
    this.cells[1].innerHTML = "10:00 PM";

    //--- Adjust column 4,  "Did not finish".
    this.cells[3].innerHTML = "10:00 PM";

    //--- Adjust column 5,  "Qualification".
    this.cells[4].innerHTML = "Disqualified";
} );


Внимание!

Неверная строка для установки tableRowsToFix. Опубликованный вопрос не содержит достаточно информации, чтобы точно его определить. Ссылка на полный источник страницы на pastebin.com (или аналогичном сайте).

...