Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа eval, a также просто основы синтаксиса JS 
V
    Опции темы
AKAPEL
Дата 5.10.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.8.2009

Репутация: нет
Всего: нет



Привет уважаемые форумчане, я только начинаю изучать Javascript.Сразу столкнулся с неприятностью.
Имею функцию заключенную в переменную, но никак не могу выполнить ее в javascript:-(
Код

function a($funk)
{
$funk=str_replace("\r\n",'',$funk);
$funk=str_replace("\n",'',$funk);

$content='
<script>
            eval($funk);
</script>';

return $content;
}


Что я не правильное делаю.Пожалуйста, только без флуда, я весь инет уже перерыл(
PM MAIL   Вверх
NLspieler
Дата 5.10.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 1
Всего: 19



1. Переменные пишутся без знака $

2. Функции str_replace() в js нет

3. 
Код

$content='
<script>
            eval($funk);
</script>';

Так писать нельзя. 
Нужно писать в одну строчку.

4. Где отступы?

Добавлено через 8 минут и 59 секунд
Вот рабочее решение. 
Код

<script type="text/javascript">
function str_replace (search , replace , string)
{
    if (search == '') return string ;
    var s = "" ;
    while (true)
    {
        i = string.indexOf (search) ;
        if (i >= 0) 
        {
            s = s + string.substr (0 , i) + replace ;
            string = string.substr (i + search.length) ;
        }
        else break ;
    }
    return s + string;
}

function a(funk)
{
    funk = str_replace("\r\n" , '' , funk);
    funk = str_replace("\n" , '' , funk);
    var content = "<script>eval(" + funk + ");</sc" + "ript>";
    return content ;
}
alert (a("Превед")) ;
</script>

PM MAIL   Вверх
Amphiluke
Дата 5.10.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Если вы пишете в PHP, то знак конкатенации — точка. Вы же вшиваете переменную $funk в скрипт в виде строки "$funk", которую Javascript не поймет.

Вот как-то так:
Код

<?php
   function a($funk) {
      $funk=str_replace("\r\n","",$funk);
      $funk=str_replace("\n","",$funk);
      $content="<script type=\"text/javascript\">" . $funk . "</script>";
      return $content;
   }
echo(a("alert('Hello world!')"));
?>


Добавлено через 9 минут и 29 секунд
Да, и кстати, при использовании двойных кавычек можно без конкатенаций:
Код

$content="<script type=\"text/javascript\">$funk</script>";

PM   Вверх
AKAPEL
Дата 5.10.2009, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.8.2009

Репутация: нет
Всего: нет



Amphiluke,спасибо, это мне и нужно было.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.