Как искать href и открывать часть URL - PullRequest
1 голос
/ 16 июля 2011

Учитывая этот пример HTML, на котором работает мой GM-скрипт, я хочу создать код, который захватывает идентификатор из http://www.mycharactersID.com/ID=234223

После того, как JavaScript получил 234223 и другие идентификаторы на странице. Затем откройте их с другой ссылкой в ​​новых вкладках. Я имею в виду все идентификаторы в HTML.

Пример: window.open("http://www.mycharactersID.com/TalkID=234223").

Burada takılan <b>12</b> karakter bulunmaktadır.<br><br>


          <table border="0" cellpadding="2" cellspacing="0" width="400">

            <tbody><tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=1858480">Alexandra&nbsp;Anthony</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=2624518">Igor&nbsp;Arnaudov</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=1318025">Ashanti&nbsp;Dunn</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=621305">Abigail&nbsp;Eliopoulos</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=1853122">Fynn Linus&nbsp;Hargasser</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=2347156">Sabela&nbsp;Hernani</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=595514">Maaja&nbsp;Jürisson</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=1329193">Sixtine&nbsp;Karakaya</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=156315">Umut&nbsp;Koç</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=821852">Shanice&nbsp;Manning</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr>
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=393396">Demircan&nbsp;Özdal</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            <tr class="DarkColumnHL">
              <td width="234">&nbsp;

                <a href="CharacterDetails.asp?action=view&amp;CharacterID=550724">Mélodie&nbsp;Stavropoulos</a>

              </td>
              <td align="right" width="158">

              &nbsp; </td>
            </tr>

            </tbody></table>

            <br>
            Not: En fazla 100 karakter listelenmektedir.<br><br>

Спасибо.

Ответы [ 4 ]

2 голосов
/ 16 июля 2011

Вот решение с использованием JQuery:

$('table tr td a[href^="http://www.mycharactersID.com/ID="]').each(function(){
    var regExp=/id=(\d+)/i;
    var matches=$(this).attr('href').match(regExp);
    if(matches)
    {
        window.open('url/ID='+parseInt(matches[1]), w_name, w_params);
    }
});

Это должно работать.

1 голос
/ 16 июля 2011

Вот полный скрипт GM, который будет работать.

Обратите внимание, что он открывает все новые вкладки одновременно.Чтобы открыть последовательно, вам нужно поставить их в очередь, как в этом ответе .

// ==UserScript==
// @name            _Open lots of tabs
// @include         http://mycharactersID.com/YOUR_PATH/*
// @include         http://www.mycharactersID.com/YOUR_PATH/*
// @require         http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
// ==/UserScript==

$("td > a[href*='CharacterID']").each ( function () {
    var ID  = this.href.match (/CharacterID=(\d+)$/i);
    if (ID  &&  ID.length > 1) {
        ID  = ID[1];
        window.open ("http://www.mycharactersID.com/TalkID=" + ID,  "_blank");
    }
} );
0 голосов
/ 16 июля 2011

это работает

html

<a href="http://www.mydomain.com/ID=25645" onclick="OpenMyPage(this); return false;">Click HyperLink</a>

javascript

function OpenMyPage(hyperlink) {var source = hyperlink.attributes.href.value; var pattern = new RegExp("(\\d+)$"); source.match(pattern); alert(RegExp.$1);}

http://jsfiddle.net/FunkyFresh84/ZEAMZ/35/

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

Ну, я не уверен, как открывать ссылки, но захват данных очень прост.

var idArray = document.body.innerHTML.match(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/g); //captures the entire link
for(var i = 0; i < idArray.length; i++){
  idArray[i] = idArray[i].replace(/"http:\/\/www\.mycharactersID\.com\/ID=([0-9]*)"/, "$1");  //Now just the ID part
}

Протестировано и, кажется, работает.

...