Javascript Bookmarklet - Открытие нескольких ссылок на странице - PullRequest
0 голосов
/ 07 апреля 2010

Я хочу создать букмарклет, чтобы при переходе на Digg я мог просто щелкнуть по нему и открыть 10 лучших историй в новых вкладках.

HTML-код на странице выглядит следующим образом:

<div id="topten-list">
  <div class="news-summary img-thumb">
    <h3>
      <a href="/comics_animation/Pokemon_COMIC">Pokemon - (COMIC) 
      <span>
        <em style="background-image: url(&quot;/comics_animation/Pokemon_COMIC/a.png&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/comics_animation/Pokemon_COMIC">
          <strong>1872</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary img-thumb">
    <h3>
      <a href="/comedy/I_am_never_drinking_with_you_assholes_again_Pic">
      I am never drinking with you assholes again [Pic] 
      <span>
        <em style="background-image: url(&quot;/comedy/I_am_never_drinking_with_you_assholes_again_Pic/a.png&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/comedy/I_am_never_drinking_with_you_assholes_again_Pic">

          <strong>1650</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary news-thumb">
    <h3>
      <a href="/comedy/xkcd_Hell">xkcd: Hell 
      <span>
        <em style="background-image: url(&quot;/comedy/xkcd_Hell/a.png&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/comedy/xkcd_Hell">
          <strong>1407</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary news-thumb">
    <h3>
      <a href="/arts_culture/6_Ridiculous_History_Myths_You_Probably_Think_Are_True">
      6 Ridiculous History Myths (You Probably Think Are True) 
      <span>
        <em style="background-image: url(&quot;/arts_culture/6_Ridiculous_History_Myths_You_Probably_Think_Are_True/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/arts_culture/6_Ridiculous_History_Myths_You_Probably_Think_Are_True">

          <strong>1216</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary news-thumb">
    <h3>
      <a href="/people/Why_Every_Chick_Flick_Is_Starting_to_Look_The_Same_CHART">
      Why Every Chick Flick Is Starting to Look The Same [CHART] 
      <span>
        <em style="background-image: url(&quot;/people/Why_Every_Chick_Flick_Is_Starting_to_Look_The_Same_CHART/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/people/Why_Every_Chick_Flick_Is_Starting_to_Look_The_Same_CHART">

          <strong>978</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary img-thumb">
    <h3>
      <a href="/food_drink/WTF_World_of_FAST_FOOD_Graphic">WTF
      World of FAST FOOD! [Graphic] 
      <span>
        <em style="background-image: url(&quot;/food_drink/WTF_World_of_FAST_FOOD_Graphic/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/food_drink/WTF_World_of_FAST_FOOD_Graphic">
          <strong>874</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary news-thumb">
    <h3>
      <a href="/people/10_Things_You_Don_t_Know_About_My_Life_As_a_Dominatrix">
      10 Things You Don&#39;t Know About My Life As a Dominatrix 
      <span>
        <em style="background-image: url(&quot;/people/10_Things_You_Don_t_Know_About_My_Life_As_a_Dominatrix/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/people/10_Things_You_Don_t_Know_About_My_Life_As_a_Dominatrix">

          <strong>751</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary img-thumb">
    <h3>
      <a href="/odd_stuff/Star_Trek_Transporter_Mishap_pic">Star
      Trek Transporter Mishap (pic) 
      <span>
        <em>thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/odd_stuff/Star_Trek_Transporter_Mishap_pic">
          <strong>667</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary vid-thumb">
    <h3>
      <a href="/pc_games/StarCraft_2_Beta_Breakup_Video">StarCraft
      2 Beta Breakup (Video) 
      <span>
        <em style="background-image: url(&quot;/pc_games/StarCraft_2_Beta_Breakup_Video/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/pc_games/StarCraft_2_Beta_Breakup_Video">
          <strong>627</strong>
        </a>
      </li>
    </ul>
  </div>
  <div class="news-summary news-thumb">
    <h3>
      <a href="/politics/Jon_Stewart_FL_Doc_Won_t_Touch_Yr_Penis_If_You_Voted_Obama">
      Jon Stewart: FL Doc Won&#39;t Touch Yr Penis If You Voted
      Obama 
      <span>
        <em style="background-image: url(&quot;/politics/Jon_Stewart_FL_Doc_Won_t_Touch_Yr_Penis_If_You_Voted_Obama/a.jpg&quot;);">
        thumb</em>
      </span></a>
    </h3>
    <ul class="news-digg">
      <li class="digg-count">
        <a href="/politics/Jon_Stewart_FL_Doc_Won_t_Touch_Yr_Penis_If_You_Voted_Obama">

          <strong>508</strong>
        </a>
      </li>
    </ul>
  </div>
</div>

Таким образом, в каждом div с классом «news-summary» есть ссылка.Как я могу заставить javascript пройти через div "topten-list" и открыть каждый из них?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2010

Решение было следующее: я создал оператор Javascript for, который прошел через div списка topten-list и выбрал все теги с именем 'a'.

Последний букмарклет такой:

javascript:for(i=0;i<=18;i=i+2){window.open(document.getElementById('topten-list').getElementsByTagName('a')[i]);}

Та-да!

0 голосов
/ 07 апреля 2010

Я бы предпочел использовать jQuery

, но чтобы применить его на внешнем сайте, попробуйте это (подсказка, я копирую пасту из моей предыдущей ветки) Я предлагаю создать страницу с двумя фреймами, один из которых предназначен для перехода на назначенный веб-сайт, а другой - для получения объектов DOM. в первом перейдите на сайт, а затем выберите его HTML и добавьте его в тело второго Ифраме.

iframe2.contentWindow.document.body.innerHTML = iframe1.contentWindow.document.body.innerHTML

тогда во втором iframe у вас будет загружен скрипт jquery, и вы сможете запустить этот код.

$("news-summary img-thumb").find("news-digg").find("a").each(
function()
{
window.open(window.location + $(this).attr("href"));
}
)

скажите мне, как это происходит

...