ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

28.12.2007, 17:02
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от [x26]VOLAND
Ежу понятно я и сам так могу зделать. Можно кстати и не юзать id="target_js" и eval(parent.document.getElementById('target_js').t ext); ----- всё и без них работает....
Загвоздка в том что целевая функция ВЛОЖЕНА в другую (родительскую )и именно:
main_function(...)
{
target_function(...){...};
}
Обрати внимание!
Никак. Это вложенная функция будет видна только внутри родительской.
// Читать: никак, если использовать стандартные и не извращённые методы
Код:
<script type="text/javascript">
<!--
var main_function = new function()
{
this.target_function = function(){}
}
//-->
</script>
А так - нужная ф-ия будет доступна как main_function.target_function
Если нужно сохранить именно такую структуру, код которой ты привёл, то решение тоже есть, но нужно ли?
----------------------------------------------------------------------
Вот так вроде работает:
1.html
Код:
<html>
<head>
<script type="text/javascript">
function wrapper()
{
function needed()
{
alert('Got it!');
}
}
</script>
</head>
<body>
Main<br />
<iframe src="2.html"></iframe>
</body>
</html>
2.html
Код:
<html>
<head>
<script type="text/javascript">
function getNeeded()
{
// Переводим функцию в строковый вид для обработки
var str = new String(top.wrapper);
// Удаляем первую фигурную скобку,
// всё, что идёт до неё и последнюю - избавляясь от внешней функции
str = str.replace(/^[^{]+{/, '');
str = str.substring(0, str.length-1);
// Заменяем "закрытые" объявления функций на "открытые"
// Всё это условно, т.к. работаем всё ещё со строкой
// Может понадобиться изменить регулярное выражение
str = str.replace(/function\s*([^\(\s]*)\s*/ig, 'this.$1 = function');
str = new Function(str); // Создаём функцию
var created = new str; // Создаём экземпляр
created.needed(); // Запускаем
}
</script>
</head>
<body>
<a href="#" onclick="getNeeded();return false;">Click</a>
</body>
</html>
Последний раз редактировалось astrologer; 28.12.2007 в 19:11..
|
|
|

28.12.2007, 20:50
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Последний раз редактировалось astrologer; 28.12.2007 в 21:18..
|
|
|

31.12.2007, 00:57
|
|
Новичок
Регистрация: 06.11.2007
Сообщений: 13
Провел на форуме: 16617
Репутация:
30
|
|
1) Первый параметр setTimeout() - должен быть функцией, а не строкой (!).
а как это? так чтоли:
Код:
setTimeout(opacity(x),50);
по-моему так не правильно...
2) Шаг можно и увеличить - будет, скажем, x -= 5;
я так делал... только картинка появляется скачками и скорость изменить нельзя =\
3) Не стоит каждый раз вызывать функцию getElementById() - можно сохранить результат (т.е. ссылку на объект) в переменной.
можно пример кода?
4) Ещё есть setInterval()
тож не помогло =\
|
|
|

05.01.2008, 18:51
|
|
Новичок
Регистрация: 06.11.2007
Сообщений: 13
Провел на форуме: 16617
Репутация:
30
|
|
Сообщение от [x26]VOLAND
Есть картинка, заданная простым тегом <img> (без всяких аттрибутов id, name и т.п) внутри тега <div id=bbb>. Эта картинка имеет постоянный адрес. Как средствами JS её обновить?
мб так прокатит
Код:
document.getElementById("bbb").innerHTML='<img src="img.jpg?nocache='+Math.floor(1000*Math.random())+'">';
2Stalk все работает. Наверное ты не правильно указал путь к картинке
Последний раз редактировалось eXp; 05.01.2008 в 18:53..
|
|
|

05.01.2008, 19:02
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от [x26]VOLAND
Есть картинка, заданная простым тегом <img> (без всяких аттрибутов id, name и т.п) внутри тега <div id=bbb>. Эта картинка имеет постоянный адрес. Как средствами JS её обновить?
Код:
var div = document.getElementById('bbb');
var pic = div.getElementsByTagName('img')[0]; // 0 - номер нужной картинки.
Метод обновления картинки на 23 странице.
eXp, мб у него ещё много чего в этом блоке находится, зачем всё стирать?
|
|
|

01.02.2008, 19:45
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от [x26]VOLAND
Проблема. Посылается Ajax-запрос, а сервер возвращает русский текст, затем этот текст выводится на страничку. Но вместо русских символов получается что-то вроде "������� ������������". В чём проблема?
В кодировке O_o
|
|
|

02.02.2008, 05:57
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от [x26]VOLAND
Это понятно, а вот как это исправить?
[x26]VOLAND, Сначала нужно узнать, в какой кодировке данные отправляются клиенту, какие загловки при этом(*до этого) посылаются, какая кодировка указана в мета-теге на странице, какие преобразования производятся и сделать соответствующие выводы, поскольку "как исправить" будет сильно зависеть от полученных результатов.
cash$$$, в JS так называемые ассоциативные массивы - это тоже объекты, у которых свойство length может быть не определено:
Код:
<script type="text/javascript">
var a = []; // new Array();
alert('#1 a.length: ' +a.length); // 0
a['first'] = 'something';
alert('#2 a.length: ' +a.length); // 0
a[0] = 'something else';
alert('#3 a.length: ' +a.length); // 1
</script>
К тому же, лучше поменять "for(item in mas)" на "for(var i in mas)", чтобы переменная оставалась локальной.
|
|
|

15.09.2008, 21:06
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от [R]eD
Как с помошью jQuery отправлять запрос ajax'ом на скрипт и вывод этого в определенный блок, например, каждые 15сек?
Спасибо.
Код:
setInterval(function()
{
$('.certain').load('/script.php');
}, 0x3A98);
|
|
|

09.12.2008, 23:20
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от life_is_shit
astrologer где ты этот ужас откопал???
Этот интуитивно-понятный код можно воочию увидеть в документации (это пока ещё не окончательная версия).
Сообщение от UnPazz
Подскажите, пожалуйста, как такой код, вывести на страницу 5 раз
По-моему, ты идёшь неверным путём, если нужно один и тот же код вывести пять раз.
Последний раз редактировалось astrologer; 10.12.2008 в 01:05..
|
|
|

11.12.2008, 00:00
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме: 3069349
Репутация:
808
|
|
Сообщение от Pashkela
Галлерею делает по моей системе
Система нипель
<deprecated>
А можно обойтись без формы?
Разумеется, ведь всё, что сейчас форма делает - это запускает код "openwindow(i)". C таким же успехом можно написать:<img src="zakat1.jpg" onclick="openwindow(1)" /> А вообще, в html коде никаких обработчиков быть не должно.
</deprecated>
Сообщение от UnPazz
Если нажимать, на форму так, то окрывается окно. В окне для эксперимента выводится переданная переменная i . Но она всегда передается со значением 5 (код от d_x так же передает значение всегда 5, но вывод картинок теперь разных работает :-)
Нет, она не передаётся со значением 5. Ты пишешь туда строковое имя переменной - "i". Значение пять там появляется только потому, что оно осталось таким в конце цикла.
Сообщение от UnPazz
Поиски информации привели к понятию "замыкание в javascript", верно ли?
Это будет непросто понять.
P.S. если посоветуют небезызвестную статью Котерова, лучше вместо неё прочитать обсуждение на форуме
Последний раз редактировалось astrologer; 11.12.2008 в 00:13..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|