Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как открыть случайную ссылку в том же окне (https://javascript.ru/forum/events/65716-kak-otkryt-sluchajjnuyu-ssylku-v-tom-zhe-okne.html)

vbvt 14.11.2016 17:36

Там нет тега <base>.
При открытии страницы http://сайт.ru/Directory/ на ней нет ссылок, как таковых. А фактически они есть и имеют такой вид http://сайт.ru/Directory/name. Name может быть из букв, из цифр, и вместе.
А общий список ссылок на сайте скрыт. Что можете предложить?

Deff 15.11.2016 04:54

vbvt,
Тег <base> можно вставить самому или как HTML или скриптом
<!DOCTYPE>
<html>
<head>
<body>
<script type="text/javascript">
document.write('<base href="http://javascript.ru/forum/events/">')
alert('Перейти на страницу - ? \n\n"65716-kak-otkryt-sluchajjnuyu-ssylku-v-tom-zhe-okne-3.html#post435027"');
location.href = '65716-kak-otkryt-sluchajjnuyu-ssylku-v-tom-zhe-okne-3.html#post435027';
</script>
</body>
</html>

vbvt 16.11.2016 16:16

Спасибо, с <base> что-то не получается.

vbvt 19.11.2016 16:09

Цитата:

Сообщение от Aetae (Сообщение 434932)
var links = [
  'http://сайт.ru/Directory/',
  'http://сайт.ru/Directory2/',
  'http://сайт.ru/Directory3/',
];
location = links[Math.floor(Math.random()*links.length)];
По поводу курсов - сами смотрите. Каждому свой тип обучения ближе. По мне - тут отличный учебник.

Aetae, вот такой код:

var siteURL = "http://" + top.location.host.toString();
var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']");

ищет все внутренние ссылки, как их вывести куда-нибудь?

Aetae 19.11.2016 16:34

$(document.body).append(
  $internalLinks
  .map(function(a){
    return a.href
  })
  .join('<br>')
)

vbvt 19.11.2016 18:20

Цитата:

Сообщение от Aetae (Сообщение 435503)
$(document.body).append(
  $internalLinks
  .map(function(a){
    return a.href
  })
  .join('<br>')
)

Спасибо, только что-то не фурычит. Я все ещё использую Chromium Browser Automation.

Alex_63 19.11.2016 18:53

vbvt,
Может так?
var siteURL = "http://" + top.location.host.toString();
var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']");
$(document.body).append(
  $internalLinks
  .map(function(){
    return this.href
  })
  .join('<br>')
)

Aetae 19.11.2016 19:12

$(document.body).append(
  [].join.call(
    $internalLinks.map( function(){
      return this.href
    }),
    '<br>'
  )
)
Ох уж этот jq.

vbvt 19.11.2016 20:40

Цитата:

Сообщение от Aetae (Сообщение 435514)
$(document.body).append(
  [].join.call(
    $internalLinks.map( function(){
      return this.href
    }),
    '<br>'
  )
)
Ох уж этот jq.

Ничего. Правда я не понял, что должно получиться.

vbvt 19.11.2016 22:34

Цитата:

Сообщение от Aetae (Сообщение 435514)
$(document.body).append(
  [].join.call(
    $internalLinks.map( function(){
      return this.href
    }),
    '<br>'
  )
)
Ох уж этот jq.

Пардон, все работает, только ссылки выводятся как текст.
Можно ли сделать так чтобы поиск был по серверу, а не по странице?


Часовой пояс GMT +3, время: 02:26.