Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » js: получение в массив текст другой функции

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
у меня есть 2 функции в 2х разных файлах xxx.js
 
1.

Код:
function login() {
    var text = "";
    
    text += "Текст";
    
    return text;
}

 
2.
 

Код:
function windows(fun) {
...
var table = function fun() {};
    
    if(table == "") {
        return closed();
    }
    
    text += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"review_windows\">";
    text += "<tr><td class=\"main_menu\" style=\"color: #ffffff; font-weight: bold; font-size: 10pt;\">Авторизация</td></tr>";
    text += "<tr><td class=\"main_fon mein_info\">";
    
    text += table;
    
    text += "</td></tr>";
    text += "</table>";
    
    login.innerHTML = text;
 
...
 
}

 
в функцию windows мы отправляем название функции в fun
после, мне нужно в var table = function fun() {}; впихнуть (получить) ответ той функции, которую мы вызвали...
 
т.е. при нажатие на копку
 

Код:
<a id="menu_7" onclick="return windows('login')" href=\"\">Вход</a>

 
мы в функцию windows отправляем текст login
но теперь в windows нам нужно получить ответ функции login как это сделать?
и как можно сделать проверку, существует-ли функция?
Спасибо))

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 16:01 26-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
var table = function fun() {};

не нужно ее переопределять.
 

Код:
function test() {
    return 'test';
}
 
function call_function(fun) {
   var fn = window[fun];
   if (typeof fn == 'function')
       alert(fn());
}
 
call_function('test');

http://jsfiddle.net/rk9vZ/
 
но если функция не доступна в глобальной области - это не сработает
можно еще через eval, но лучше так не делать

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:19 26-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, но чтото тут не так...
Вместо такого окна:
   
 
получилось такое:
 

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 17:04 27-12-2013 | Исправлено: Sutar, 17:05 27-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
получилось такое:

вы снова телепатов ищете? откуда я знаю что и как вы сделали из того примера, что я привел?  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:01 27-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery

Код:
 
function login() {
    var text = "";
    
    text += "<form method=\"post\" action=\"\" onsubmit=\"return check();\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">";
    text += "<tr><td colspan=\"2\" align=\"center\" style=\"padding-bottom: 6px;\">Пожалуйста<br/>введите ваш <b>логин</b> и <b>пароль</b>,<br/>для входа на сайт.</td></tr>";
    text += "<tr>";
    text += "<td width=\"35%\" align=\"center\" style=\"padding-bottom: 3px;\" id=\"n_login\">Логин:</td>";
    text += "<td width=\"65%\" align=\"center\" style=\"padding-bottom: 3px;\"><input type=\"text\" id=\"login\" name=\"login\" maxlength=\"32\" value=\"\" style=\"width: 115px;\"/></td>";
    text += "</tr>";
    text += "<tr>";
    text += "<td align=\"center\" style=\"padding-bottom: 3px;\" id=\"n_password\">Пароль:</td>";
    text += "<td align=\"center\" style=\"padding-bottom: 3px;\"><input type=\"password\" id=\"password\" name=\"password\" maxlength=\"32\" value=\"\" style=\"width: 115px;\"/></td>";
    text += "</tr>";
    text += "<tr><td colspan=\"2\" align=\"center\" style=\"padding-bottom: 3px;\" id=\"error_login\">&nbsp;</td></tr>";
    text += "<tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" value=\"Войти\" style=\"width: 85px;\"/></td></tr>";
    text += "</table></form>";
    
    return text;
}
 
 
function windows(fun) {
...
    var table = window[fun];
    
    if(table == "") {
        return closed();
    }
...
}
 

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 19:23 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
Судя по картинке - ваша функция login не находится между тегами script, а идёт как просто текст в HTML странице.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:26 28-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Тут скрипт в 2х разных файлах
они оба подключены как js
даже ваш пример, отображает так
 

Код:
function sts() { return "test"; }

 
а не как HTML
я потом вставляю текст так
 

Код:
document.getElementById("fon_windows").innerHTML = table;

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 20:01 28-12-2013 | Исправлено: Sutar, 20:16 28-12-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
я потом вставляю текст так

Вы не вызываете функцию, а вставляет её код.
Где table()?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:40 28-12-2013
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
я понял, спасибо вам.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 15:49 29-12-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » js: получение в массив текст другой функции


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru