Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Открытие ссылок в новом окне (https://javascript.ru/forum/events/60442-otkrytie-ssylok-v-novom-okne.html)

serega1976 30.12.2015 11:10

Открытие ссылок в новом окне
 
Доброго времени суток. Помогите решить проблему.
Хочу сделать что бы когда,
  1. пользователь заходит на сайт читает статью
  2. переходит по любой ссылке на сайте на другую статью которая должна открыться в новой вкладке
  3. все остальные переходы по сайту должны отображаться во второй вкладке которая открылась

хочу сделать как на данном сайте tradelikeapro.ru
есть скрипт
(function () {
    function listener(e) {
        if (e.target.tagName !== 'A') return;
        e.preventDefault();
        window.open(e.target.href, '_blank');
        document.removeEventListener('click', listener);
    }
  
    document.addEventListener('click', listener);
})();

Но он почему то работает через раз,а ошибку найти не могу

Deff 30.12.2015 11:41

<a href="http://javascript.ru/forum/">Форум</a>

<script type="text/javascript">
var lng = document.links.length;
for(i=0;i<lng;i++){
document.links[i].target = "_blank"
}
</script>

serega1976 30.12.2015 18:29

Deff,Не работает

Deff 30.12.2015 19:40

serega1976,
Ccылку на страницу с проблемой

serega1976 30.12.2015 22:10

Deff, forexs-school.ru
Скрипт разместил http://forexs-school.ru/new%202.js

рони 30.12.2015 22:49

serega1976,
замените весь текст в вашем скрипте на этот
window.addEventListener("DOMContentLoaded", function() {
     var lng = document.links.length;
for(var i=0;i<lng;i++){
document.links[i].target = "_blank"
}

});

Deff 30.12.2015 22:53

serega1976,
1. Вы разместили скрипт до всех ссылок,
2. Не изъяли из загружаемого кода теги <script></script>
3. текст подгружаемого скрипта в начале страницы(в текущем месте):
$(function(){$('a').each(function(){this.target = "_blank";});});

ruslan_mart 01.01.2016 14:36

window.addEventListener('DOMContentLoaded', function() {
	var blank,
		i, links = document.links;
  
	function clickOnLink(e) {
		if(!blank || !blank.document.location) {
			blank = window.open(this.href);
		}
		else {
			blank.document.location.href = this.href;
		}
		e.preventDefault();
	};

	for(i = 0; i < links.length; i++) {
		links[i].addEventListener('click', clickOnLink);
	}
});


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