Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Массив ссылок в js (https://javascript.ru/forum/misc/37844-massiv-ssylok-v-js.html)

wildf 10.05.2013 16:54

Массив ссылок в js
 
Доброго времени суток уважаемые форумчане. Что меня сподвигло написать на форуме, так наверное недостаток знаний в синтаксисе. Пытаюсь черпать знания на форумах, в электронных изданиях и т.д.. Но вот чего порой не хватает, так это дельного совета от гуру js, да и порой хватает советов таких же как и я но со знаниями чуть повыше. Ваш форум выбрал потому как показался мне лучшим в своем роде. Буду признателен за любые подсказки, уже готовый код и естественно линки на материалы которые мне помогли бы дойти самому до верного ответа.
Теперь отойдем от лирики и перейдем к вопросу.
Понадобилось сделать js по такому заданию.
Есть кнопка, или даже такой фрагмент кода:
Код:

'<span style="color: #ff0000;"><a href="http://javascript.ru" target="main"><span style="color: green;"> Клик</span></a></span> '+
Итак, этот код как Вы видите создает на странице "Клик" при клике на который во фрейме main откроется сайт http://javascript.ru .
Что нужно.. Нужно чтобы при клике поочередно во фрейме main открывались указанные ссылки с промежутком указанным в коде.
Т.е. в коде приписываю допустим javascript.ru,javascript.ru/forum и ожидание между автосрабатыванием следующей ссылки допустим 1s или 300ms.

Обратился к Вам потому что все мои попытки найти что-либо оказались безуспешными. Но получил подсказку что мол нужно создать массив для этих ссылок.

Заранее благодарен за любую помощь.
С ув.

skfyann 10.05.2013 16:59

У вас код откровенно битый. Не делает он никаких ифреймов. Ну и соответственно непонятно что есть на данный момент

wildf 10.05.2013 17:00

фреймы все сделаны на самом деле. мне просто нужно понять каким образом при имеющихся фреймах осуществить задуманное

ruslan_mart 10.05.2013 17:12

HTML:
<iframe id="main"></iframe>
<a href="javascript://" style="color:green" onclick="frameUrls()">Клик</a>


javascript:
var frInt = false;

function frameUrls()
{
	var time = 3000; //Время повтора в ms.
	var urls = new Array('сайт 1', 'сайт 2', 'сайт 3'); //Ссылки на сайты
	var a = 0, b = document.getElementById('main');
	if(frInt) clearInterval(frInt);
	frInt = setInterval(function()
	{
		b.src = urls[a];
		a = (a+1 == urls.length) ? 0 : a+1;
	},time);
}

wildf 10.05.2013 18:06

Цитата:

Сообщение от Ruslan_xDD (Сообщение 249777)
HTML:
<iframe id="main"></iframe>
<a href="javascript://" style="color:green" onclick="frameUrls()">Клик</a>


javascript:
var frInt = false;

function frameUrls()
{
	var time = 3000; //Время повтора в ms.
	var urls = new Array('сайт 1', 'сайт 2', 'сайт 3'); //Ссылки на сайты
	var a = 0, b = document.getElementById('main');
	if(frInt) clearInterval(frInt);
	frInt = setInterval(function()
	{
		b.src = urls[a];
		a = (a+1 == urls.length) ? 0 : a+1;
	},time);
}

Благодарю. Но что делать если у меня имеется лишь js. Сразу забыл указать, что дело имеем с user.js Т.е. проще говоря пользовательский плагин для сайта.
С ув.

dmitriymar 10.05.2013 18:07

Цитата:

Сообщение от wildf
Благодарю. Но что делать если у меня имеется лишь js. Сразу забыл указать, что дело имеем с user.js Т.е. проще говоря пользовательский плагин для сайта.
С ув.

тогда откройте для себя раздел http://javascript.ru/forum/job/

ruslan_mart 10.05.2013 18:16

var frInt = false;

window.onload = function()
{
	var a = document.getElementsByTagName('a');
	for(i=0; i<a.length; i++) if(a[0].target == 'main')
	{
		a[i].onclick = frameUrls;
		break;
	}
}

function frameUrls()
{
	var time = 3000;
	var urls = new Array('сайт 1', 'сайт 2', 'сайт 3');
	var a = 0, b = document.getElementById('main');
	if(frInt) clearInterval(frInt);
	frInt = setInterval(function()
	{
		b.src = urls[a];
		a = (a+1 == urls.length) ? 0 : a+1;
	},time);
}

ruslan_mart 10.05.2013 18:27

Извиняюсь, вот более правильный вариант:
var frInt = false;

window.onload = function()
{
	var a = document.getElementsByTagName('a');
	for(i=0; i<a.length; i++) if(a[i].target == 'main')
	{
		a[i].onclick = frameUrls;
		break;
	}
}

function frameUrls()
{
	var time = 3000;
	var urls = new Array('сайт 1', 'сайт 2', 'сайт 3');
	var a = 0, b = document.getElementsByTagName('iframe');
	for(i=0; i<b.length; i++) if(b[i].name == 'main')
	{
		b = b[i];
		break;
	}
	if(frInt) clearInterval(frInt);
	frInt = setInterval(function()
	{
		b.src = urls[a];
		a = (a+1 == urls.length) ? 0 : a+1;
	},time);
}

ruslan_mart 10.05.2013 18:55

P.S.: опечатку поправил.

wildf 15.05.2013 18:37

Огромное спасибо Ruslan_xDD
Помог, подсказал, посоветовал. Побольше бы таких)


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