Вопросы по Javascript, Jquery, Ajax.

Ответить
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Цитата monopolie:



Вроде логически всё правильно. Но не работает.

Почему?
Вопросы по Javascript, Jquery, Ajax.




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


Цитата monopolie:



Каждую секунду должны переключаться элементы массива.
Вопросы по Javascript, Jquery, Ajax.




Вот и надо переключать по одному, а не прогонять все за один раз. Изменяйте i один раз за выполнение функции, и сравните полученный результат с описанным ниже:


читать дальше »




Код:

Код: Выделить всё

var i = 0; // счетчик = 0
function fixedFunc()
{
    // ... используем наш массив с индексом i
    i++; // при каждой итерации увеличиваем счетчик
    if (array.length == i) i = 0; // и сбрасываем его, если добрались до конца массива :)
}
setInterval(fixedFunc, 1000);

И все в итоге работает
Изображение
Аватара пользователя
Habetdin

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение Habetdin »

Не получается запустить метод showModalDialog();

Сначало работал, потом перестал почему-то.

Не принимаются параметры через dialogArguments.



Две переменные.



var c = "2sdfgsdfg";

var d = "5sdfgsdfgsdf";



Открываем окно и передаём переменную с.



var cl =showModalDialog("SLOVA.html" , [c])

--------------------------------------------

Другое окно которое открывается.



alert(dialogArguments[0]);

-------------------------------------------

По всякому пробовал уже.



Вот на фидл. Только там это не сработает.

http://jsfiddle.net/YVyj7/
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Пытаюсь написать скрипт. Простой перебор элементов массива по команде setInterval().

Каждую секунду должны переключаться элементы массива.

Тут.

http://jsfiddle.net/7mLA9/




Создал два массива и отдал методу setInterval(). Вроде логически всё правильно. Но не работает.

Почему?
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Не получается запустить функцию из дочернего окна.

В главном окне вот эта функция написана.



var cl = open("SLOVA.html");



function dial () {



alert("dfsd");



}



А в дочернем окне пытался так запустить:



opener.dial();
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Выключил в браюзере блокировку всплывающих окон. Всё заработало.



Можно showModalDialog обработать так чтобы это окно не воспринималось как всплывающее окно?



Какой метод лучше? open() или showModalDialog()



Методом open() кстати даже при заблокированных настройках всплывающих окон передаётся параметр opener.
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Цитата monopolie:



Эти методы не кроссбраузерные?
Вопросы по Javascript, Jquery, Ajax.




window.open
вроде бы кроссбраузерен, а вот window.showModalDialog - не уверен.


Цитата monopolie:



нужно жать на разрешение всплывающего окна
Вопросы по Javascript, Jquery, Ajax.




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

(AFAIK, из-за этого всплывающая реклама обычно открывается кликом по body Изображение)
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Эти методы не кроссбраузерные? Как жаль что они коряво работают. Единственный метод для передачи данных в другое окно.



В хроме например не работает.

В фаерфоксе постоянно нужно жать на разрешение всплывающего окна, даже если в настройках включены всплывающие окна.

Только в Интернет Експлорере работает хорошо.



А в самом начале ошибка у меня была потомучто я поместил код всплывающего окна в $(document).ready(function() {});
Аватара пользователя
Habetdin

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение Habetdin »

Получается метод open() тоже нельзя использовать. Он в хроме не работает.

Есть замена этим методам? Которые на всех браузерах работают?
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Блин. И в Фаерфоксе не работает. Что это за методы, для издевательств чтоли??

Я как раз из за этих возможностей начал яваскрипт учить. А тут такое дело что этих возможностей и нету.

В главном окне открываю окно и вызываю функцию из открывшегося окна.



var cl = open("SLOVA.html" , "name" );



cl.ret();





В открывшемся окне написана функция которая должна выполниться.



function ret() {

alert("Алерт");

}

Фаербаг пишет что функции cl.ret(); не существует.

--------------------------------------

Только интернет Эксплорер работает с этим методом. И этим Интернет эксплорером уже никто не пользуется.
Аватара пользователя
monopolie

Re: Вопросы по Javascript, Jquery, Ajax.

Сообщение monopolie »

Цитата monopolie:



Фаербаг пишет что функции cl.ret(); не существует.
Вопросы по Javascript, Jquery, Ajax.




Дождитесь загрузки страницы в дочернем окне, а затем вызывайте функцию. Либо таймаут (setTimeout), либо ожидание события загрузки... Изображение


Цитата monopolie:



Он в хроме не работает.
Вопросы по Javascript, Jquery, Ajax.




Вызывается при действии пользователя?


Цитата Habetdin:



Если окно будет открываться в ответ на действие пользователя, разрешения не требуется
Вопросы по Javascript, Jquery, Ajax.




Кстати, на локалке хром будет жаловаться при тестировании междуоконных вызовов:


Цитата:



Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.



А на тестовом сайте все нормально, и "в ту", и "в другую сторону" между окнами функции вызываются Изображение
Ответить

Вернуться в «Вебмастеру»