JavaScript & jQuery
UnderShot
Дата: Понедельник, 23.11.2009, 20:12 | Сообщение # 1
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Чтобы не создавать отдельные темы с проблемой в JavaScript, решил создать тему с вопросами по jS и jQ. Задаем вопросы…

Ссылки для обучения JS:
1. Центральный Javascript-ресурс
2. Учебники JavaScript
3. Уроки JavaScript
4. Справочник JavaScript
5. JavaScript tutorials
6. Плагины для jQuery
7. Учим JavaScript
8. Интересные решения на JS
Конечно, если я какие-нибудь ссылки пропустил, оповестите меня, и я добавлю эти ссылки.

UPD Стандарт экма на русском: http://javascript.ru/ecma


Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Среда, 14.04.2010, 19:51 | Сообщение # 201
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
UnderShot,

Code
var arr = [], e = document.getElementsByTagName('*');
for (var i = 0; i < e.length; i++) {
if (e[i].tagName == 'pre' || e[i].tagName == 'code') {
arr.push(e[i].innerHTML);
}
}

... Скрипт замены ...

for (var i = 0; i < e.length; i++) {
if (e[i].tagName == 'pre' || e[i].tagName == 'code') {
e[i].innerHTML = arr[i];
}
}
  
DSC
Дата: Четверг, 15.04.2010, 15:06 | Сообщение # 202
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
а как узнать marginLeft любого объекта?
вот есть же object.offsetLeft
вот мне нужно то же самое только для marginLeft


aka Latro
  
Aleko
Дата: Четверг, 15.04.2010, 15:55 | Сообщение # 203
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
DSC
Code
<script>
function margLeft(object){
return object.style.marginLeft||(!-[1,]?object.currentStyle['marginLeft']:document.defaultView.getComputedStyle(object,null)['marginLeft'])
}
</script>


Бесплатные обои.
  
UnderShot
Дата: Четверг, 15.04.2010, 16:16 | Сообщение # 204
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko, не знаешь, как с твоим скриптом справиться? Я все не могу вывести через алерт содержимое класса, а jq не хочу.

Очень важная тема!
Filmzona — онлайн фильмы.
  
DSC
Дата: Четверг, 15.04.2010, 18:38 | Сообщение # 205
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko, только в осле на любые значения выдаёт auto!

aka Latro
  
UnderShot
Дата: Четверг, 15.04.2010, 18:56 | Сообщение # 206
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
DSC, осел таки.

Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Пятница, 16.04.2010, 01:51 | Сообщение # 207
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
UnderShot, http://www.w3.org/TR/selectors-api/

«POST данные для модулей системы»
  
WRC
Дата: Суббота, 17.04.2010, 13:20 | Сообщение # 208
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Когда я всовываю в цикл две переменные:
Code
for (var i=0,o=0;i<3,o<6;i++,o++)
document.write('i='+i+',o='+o+'<br>')

получается что i не выполняет своё условие (i<3), а выполняет условие o<6. Если же добавить условку:
Code
for (var i=0,o=0;i<3,o<6;i++,o++)
document.write((i<3?'i='+i+',':'')+'o='+o+'<br>')

то всё работает желаемо.
Как сделать это без ввода условия, прямо в цикле?


Устраняем баг при просмотре материала

Сообщение отредактировал WRC - Суббота, 17.04.2010, 13:29
  
Infamous
Дата: Суббота, 17.04.2010, 14:40 | Сообщение # 209
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
WRC,

Code
for (var i = 0; i < 3; i++) for (var o = 0; o < 6; o++) …
  
WRC
Дата: Воскресенье, 18.04.2010, 03:59 | Сообщение # 210
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Infamous, а без двух циклов (чтобы именно в одном были все параметры) получается не возможно( ???

Устраняем баг при просмотре материала

Сообщение отредактировал WRC - Воскресенье, 18.04.2010, 03:59
  
Infamous
Дата: Воскресенье, 18.04.2010, 09:52 | Сообщение # 211
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
WRC, нет, невозможно.
  
chu4___x
Дата: Воскресенье, 18.04.2010, 15:51 | Сообщение # 212
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Code
for (var i = 0; i < 6; i++) {
  document.write(i + ' ' + (i < 3 ? i : '') + '<br>')
};

Результат.
Code
0 0
1 1
2 2
3  
4  
5


«POST данные для модулей системы»
  
WRC
Дата: Воскресенье, 18.04.2010, 17:06 | Сообщение # 213
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
chu4___x, ага... я так и сделал ещё в само начале... просто поинтересовался возможно или нет...

Устраняем баг при просмотре материала
  
chu4___x
Дата: Воскресенье, 18.04.2010, 20:48 | Сообщение # 214
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Тем кто не знаком с системой, xmlhttprequest и refferer, просьба дальше не читать.

На станице изменения личной информации стоит проверка рефферала, если данные отправлены не со страницы /index/11, то выдаст ошибку - «You are trying to do illegal action!». Возможно ли обойти эту хрень? Может с iframe?


«POST данные для модулей системы»
  
Aleko
Дата: Воскресенье, 18.04.2010, 21:12 | Сообщение # 215
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
chu4___x, а если так?
Code
запрос.setRequestHeader("Referer", "$HOME_PAGE_LINK$index/11")


Бесплатные обои.
  
chu4___x
Дата: Воскресенье, 18.04.2010, 21:18 | Сообщение # 216
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Aleko, уже пробовал, не получится.

«POST данные для модулей системы»
  
Aleko
Дата: Воскресенье, 18.04.2010, 21:23 | Сообщение # 217
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
chu4___x, почему? Что выдает?

Бесплатные обои.
  
chu4___x
Дата: Воскресенье, 18.04.2010, 21:24 | Сообщение # 218
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Aleko, всё тоже самое =)
Code
«You are trying to do illegal action!»

Могу код в лс кинуть. :)


«POST данные для модулей системы»
  
Aleko
Дата: Воскресенье, 18.04.2010, 21:32 | Сообщение # 219
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
chu4___x, у хз тогда, я в этом не особо рублю.

Бесплатные обои.
  
chu4___x
Дата: Воскресенье, 18.04.2010, 21:35 | Сообщение # 220
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Aleko, да там не сложно, ты одним глазком взгляни :D

«POST данные для модулей системы»
  
chu4___x
Дата: Воскресенье, 18.04.2010, 21:41 | Сообщение # 221
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Вот мигрень.

«POST данные для модулей системы»
  
UnderShot
Дата: Вторник, 20.04.2010, 16:16 | Сообщение # 222
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Можно как-либо сделать со стороны пользователя редирект на другую страницу? Например в укозовском поле «Сайт» я указал ссылку — http://vasya.ru/, но на том сайте стоит авто-добавление к ссылкам. Например ссылку к вася.ру будет выглядеть так: http://studioad.ru/forum/http://vasya.ru/, соответственно выдает 404. Повторю вопрос, можно ли сделать, типа ??redirect='http://vasya.ru/', и чтобы при нажатии на ссылку перенаправлял на мой сайт?

Очень важная тема!
Filmzona — онлайн фильмы.
  
Aleko
Дата: Вторник, 20.04.2010, 16:51 | Сообщение # 223
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot, только на самой странице в коде. То поле, которое ты изменял, предполагает редирект на внутренние страницы. Про скриптовый редирект читай тут: http://studioad.ru/blog/2009-02-18-40

Бесплатные обои.
  
Иван0
Дата: Суббота, 24.04.2010, 15:44 | Сообщение # 224
молчун
Группа: Проверенные
Пользователь №: 300
Сообщений: 48
Получено оценок: 5
Помогите, пожалуйста, выдрать скрипт слайдера с Adobe.com, тот, что в блоке Products and Solutions. Всё перепробовал - не выходит. Спасибо заранее!
  
Aleko
Дата: Суббота, 24.04.2010, 15:48 | Сообщение # 225
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Иван0, просто поищи в интернете, таких скриптов навалом, он очень простой.

Бесплатные обои.
  
UnderShot
Дата: Воскресенье, 25.04.2010, 12:55 | Сообщение # 226
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
if(!username && !password && !captcha){return false}
Будет работать?


Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Воскресенье, 25.04.2010, 17:58 | Сообщение # 227
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
UnderShot, по идеи да.

«POST данные для модулей системы»
  
Infamous
Дата: Воскресенье, 25.04.2010, 18:06 | Сообщение # 228
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
UnderShot, если переменные не присвоены — будет Error.

И компактнее было бы так:

Code
!(window.username && window.password && window.captcha)
  
UnderShot
Дата: Воскресенье, 25.04.2010, 18:09 | Сообщение # 229
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, chu4___x,
Code
var a=document.getElementById('asd'),b=document.getElementById('asd'),c=document.getElementById('asd');
if(!(a.innerHTML && b.innerHTML && c.innerHTML)){return false}


Очень важная тема!
Filmzona — онлайн фильмы.
  
UnderShot
Дата: Воскресенье, 25.04.2010, 18:16 | Сообщение # 230
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
↑ правильно?

Очень важная тема!
Filmzona — онлайн фильмы.
  
Infamous
Дата: Воскресенье, 25.04.2010, 18:24 | Сообщение # 231
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Да. Но можно так:

Code
return a.innerHTML && b.innerHTML && c.innerHTML;
  
UnderShot
Дата: Воскресенье, 25.04.2010, 19:04 | Сообщение # 232
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Infamous, спасибо.

Очень важная тема!
Filmzona — онлайн фильмы.
  
WRC
Дата: Понедельник, 26.04.2010, 16:08 | Сообщение # 233
говорун
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Code
<a>1</a>
<a>2</a>
<a>3</a>
<div id="lol">
<a>4</a>
<a>5</a>
<a>6</a>
</div>
<script type="text/javascript">
alert(document.getElementById('lol').parentNode.getElementsByTagName('a').length)//6
/*почему так?
по идее должно быть 3... ну так я думаю /:D/
*/
</script>


Устраняем баг при просмотре материала

Сообщение отредактировал WRC - Понедельник, 26.04.2010, 16:09
  
UnderShot
Дата: Понедельник, 26.04.2010, 16:43 | Сообщение # 234
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
WRC,
Code
document.getElementById('lol').getElementsByTagName('a').length


Очень важная тема!
Filmzona — онлайн фильмы.
  
DSC
Дата: Понедельник, 26.04.2010, 21:29 | Сообщение # 235
спикер
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
WRC, т.к. parentNode укажет на родителя lol, а это body

aka Latro
  
Infamous
Дата: Пятница, 30.04.2010, 19:39 | Сообщение # 236
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Как у div'-a удалить внешние <div> … </div> ? Через outerHTML ведь некроссбраузерно.
  
chu4___x
Дата: Пятница, 30.04.2010, 20:10 | Сообщение # 237
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
А ты вынеси содержимое блока за его пределы, а затем удали блок.

«POST данные для модулей системы»
  
UnderShot
Дата: Пятница, 30.04.2010, 20:21 | Сообщение # 238
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
chu4___x,
Quote (chu4___x)
ага, код безопасности убери
Может обойти как-то? Геттить каптчу, и вместе с каптчой полевыводить, куда ее нужно ввести, затем нажать «Отправить», и коммент отправит все данные по нужным полям?


Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Пятница, 30.04.2010, 20:24 | Сообщение # 239
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Можно, но мне лень переписывать.

«POST данные для модулей системы»
  
UnderShot
Дата: Пятница, 30.04.2010, 20:35 | Сообщение # 240
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Quote (chu4___x)
лень

:D А потом?


Очень важная тема!
Filmzona — онлайн фильмы.
  
chu4___x
Дата: Пятница, 30.04.2010, 20:51 | Сообщение # 241
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
UnderShot, ну если будет свободная минутка, а пока выключай капчу.

«POST данные для модулей системы»
  
Infamous
Дата: Пятница, 30.04.2010, 21:00 | Сообщение # 242
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (chu4___x)
А ты вынеси содержимое блока за его пределы, а затем удали блок.

Делал так:

Code
c = a.childNodes;
a.parentNode.removeChild(a);

но

Code
alert(c); // [object NodeList]
alert(c.getElementById(id)); // ничего нету


Сообщение отредактировал Infamous - Пятница, 30.04.2010, 21:01
  
Aleko
Дата: Пятница, 30.04.2010, 22:59 | Сообщение # 243
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous, простейшая функция ведь...

Сначала добавим метод:

Code
<script>
Node.prototype.removeNode = function(){
    try{
     var parent = this.parentNode,
      tempDoc = document.createDocumentFragment(),
      counter = 0,
      children = this.childNodes;
     for(;counter<children.length;counter++){tempDoc.appendChild(children[counter])}
     parent.insertBefore(tempDoc,this);
     return parent.removeChild(this)
     }
    catch(e){
     return false
     }
    }
</script>

Пример использования:

Code
снаружи<div id=one> и </div>внутри
<script>
document.getElementById('one').removeNode()
</script>
<!-- стало -->
снаружи и внутри


Бесплатные обои.
  
Aleko
Дата: Пятница, 30.04.2010, 23:05 | Сообщение # 244
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous, кстати детей ты не смог получить потому как получил массив ссылок на них. Объекты в js не копируются, копируются ссылки на них.

Бесплатные обои.
  
Hammer
Дата: Суббота, 01.05.2010, 18:21 | Сообщение # 245
молчун
Группа: Пользователи
Пользователь №: 2965
Сообщений: 9
Subst переменной мм? :D

Сообщение отредактировал Hammer - Суббота, 01.05.2010, 22:09
  
UnderShot
Дата: Суббота, 01.05.2010, 18:53 | Сообщение # 246
оратор
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Hammer, что?

Очень важная тема!
Filmzona — онлайн фильмы.
  
Hammer
Дата: Суббота, 01.05.2010, 19:12 | Сообщение # 247
молчун
Группа: Пользователи
Пользователь №: 2965
Сообщений: 9
Эмм, как определить страну пользователя используя один JS? O_o
  
Infamous
Дата: Суббота, 01.05.2010, 19:27 | Сообщение # 248
говорун
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Hammer, никак.
  
Hammer
Дата: Суббота, 01.05.2010, 19:29 | Сообщение # 249
молчун
Группа: Пользователи
Пользователь №: 2965
Сообщений: 9
Infamous, <_< клевета.
  
Aleko
Дата: Суббота, 01.05.2010, 19:37 | Сообщение # 250
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Hammer, как вариант прочитать информацию о языке системы и браузера. Но это, очевидно, не точный показатель.

Бесплатные обои.
  
Поиск:
© Studioad.ru 2006 · 2010. Использование материалов форума на сторонних ресурсах без прямой обратной ссылки строго запрещено. Хостинг от uCoz.