Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   помогите немного переделать Javascript (https://javascript.ru/forum/css-html/71718-pomogite-nemnogo-peredelat-javascript.html)

tester33 07.12.2017 22:18

помогите немного переделать Javascript
 
помогите немного переделать скрипт
скрипт заменяет на странице такие конструкции
<span class="affiliate" title="1.html">текст</span>

на такие
<span class="affiliate"><a class="affiliate" href="1.html">текст</a></span>


мне не нужно что-бы он обрамлял ссылку тегом <span class="affiliate"> </span>
то есть что-бы результат был такой:
<a class="affiliate" href="1.html">текст</a>

то есть, что-бы осталась ссылка в чистом виде

вот сам скрипт

function goPage(sPage) 
{
window.location.href = sPage;
}


function hasClass(e, c) {
if (typeof e == "string") e = document.getElementById(e);
var classes = e.className;
if (!classes) return false;
if (classes == c) return true;
return e.className.search("\\b" + c + "\\b") != -1;
};


function affiliateLinks(){
var theURL, theAnchorText, theTitle;
var spans = document.getElementsByTagName('span');
for (var i = 0; i<spans.length; i++){
if (hasClass(spans[i], 'affiliate')){


theAnchorText = spans[i].innerHTML;
theTitle = spans[i].title.toLowerCase().replace(/^\s+|\s+$/g,"");
theURL =  theTitle ; 
spans[i].innerHTML = '<a href="' + theURL + '" class="' + spans[i].className + '">' + theAnchorText + '</a>';
spans[i].removeAttribute('title');
		}
	}
}

window.onload = function(){
	affiliateLinks();
}

Aetae 08.12.2017 00:28

--
theAnchorText = spans[i].innerHTML;
theTitle = spans[i].title.toLowerCase().replace(/^\s+|\s+$/g,"");
theURL =  theTitle ;
spans[i].innerHTML = '<a href="' + theURL + '" class="' + spans[i].className + '">' + theAnchorText + '</a>';
spans[i].removeAttribute('title');
++
var a = document.createElement('a');
a.href = spans[i].title.toLowerCase().replace(/^\s+|\s+$/g,"");
a.className = spans[i].className;
while(span[i].hasChildNodes()) a.appendChild(span[i].firstChild);
span[i].parentNode.replaceChild(a, span[i]);

tester33 08.12.2017 04:45

спасибо, что отклинулись
но, увы, ваш код не сработал
ссылки вообще не появляются

кстати, забыл написать, что вся эта муть нужна для поисковых систем, что-бы спрятать некоторые ссылки, с целью не распределять ссылочный вес на не значимые страницы

рони 08.12.2017 06:08

tester33,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
window.addEventListener('DOMContentLoaded', function() {
   [].forEach.call( document.querySelectorAll('span.affiliate'), function(el) {
          var a = document.createElement('a');
          a.classList.add('affiliate');
          a.text = el.textContent;
          a.setAttribute('href', el.title);
          el.parentNode.replaceChild(a, el);
   });
    });
  </script>
</head>

<body>
<span class="affiliate" title="1.html">текст1</span>
<span class="affiliate" title="2.html">текст2</span>
<span class="affiliate" title="3.html">текст3</span>
</body>
</html>

tester33 08.12.2017 13:23

спасибо!
попробую, код рабочий

только результат всей затеи, будет через пару недель
основная идея, что-бы гугл, не видел некоторые внутренние ссылки, и не стал распределять на них ссылочный вес, а вес распределил по нужным ссылкам

а то сейчас, на сайте, по массовой причине, слишком прокачаны сквозные ссылки в шапке и футтере со всякими не значимыми "о компании", "вход", "подписаться на рассылку" и тд ..
вот только js придется мне во внешний файл пихать, и закрывать от индексации через robots.txt, что-бы гугл его не расшифровывал

void() 08.12.2017 13:55

tester33,
это бред ужасный.

tester33 08.12.2017 14:16

а какие аргументы?
просто потому что вы так думаете ? ))

но, есть и другие мнения тех, кто профессионально занимается SEO
например вот это можно почитать:
http://drmax.su/guru-2017-perelinkovka.html

там есть авторская ссылка для бесплатного скачивания книги

void() 08.12.2017 15:36

Когда-то в поисковой выдачи было очень много мусора. Фактически гугл и яндекс превратились в свалку. Но сейчас этого не наблюдается. Я когда что-то ищу в поисковиках, то мне в 100% случаев показывают крутые сайты, нормальные.

Так вот вопрос возникает... есть ли взаимосвязь между тем, чтобы криво закрыть какие-то ссылки в меню и рейтингом сайта в поисковике? Что-то я сомневаюсь :D . Скорей это будет считаться признаком некачественного сайта.

Nexus 08.12.2017 15:55

Цитата:

Сообщение от tester33
вот только js придется мне во внешний файл пихать, и закрывать от индексации через robots.txt, что-бы гугл его не расшифровывал

Что-то я дико сомневаюсь, что робот не станет воспроизводить js файл только потому что он закрыт для индексации в robots.txt.
Это как минимум глупо.

tester33 08.12.2017 17:19

Цитата:

Сообщение от void() (Сообщение 472377)
Когда-то в поисковой выдачи было очень много мусора. Фактически гугл и яндекс превратились в свалку. Но сейчас этого не наблюдается. Я когда что-то ищу в поисковиках, то мне в 100% случаев показывают крутые сайты, нормальные.

Так вот вопрос возникает... есть ли взаимосвязь между тем, чтобы криво закрыть какие-то ссылки в меню и рейтингом сайта в поисковике? Что-то я сомневаюсь :D . Скорей это будет считаться признаком некачественного сайта.

почитайте внимательно !
речь идет не о сайте, а о странице
кроме того, у поисковика и у посетителя, немного разные признаки некачественного сайта ))

если бы вы прочитали книгу, то поняли бы, что такой внутренний фактор ранжирования, как статический вес страницы, не имеет слишком большого значения
куда более значимый фактор - динамический вес, а также внешние и поведенческие факторы

правильная перелинковка страниц, не столько сильно поднимет страницы сайта в выдаче, сколько позволит распределить их относительный статический вес на сайте, тем самым, более акцентировать поисковик на требуемый документ, если у поисковика будет выбор какой документ сайта показать в выдаче


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