Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.02.2011, 17:10
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Разработка веб приложения
Современного. Первый опыт)

Здрасте!
Решил не плодить много тем, поскольку вопросы мелкие и по одной теме будут..

Это не попытка перекласть разработку на форумчан, а просто поиск решения, и спобов реализации. Поэтому просьба отнестись с пониманием)

Короче задача:
Разрабатываю веб-приложение - редактор рекламных блоков.
Вкратце задание:
Цитата:
На основной странице приложения располагаются: 1. поле (textarea) для ввода данных в json-формате, на основе которых будут сформированы блоки 2. кнопка (либо ссылка), открывающая три окна, позволяющих работать с блоками: таблица с блоками, форма редактирования блока, вид блока (с возможностью изменения высоты, ширины и позиции) 3. кнопка (либо ссылка), по клику на которую в поле ввода данных загружаются изменённые данные в json-формате Формат ввода и вывода объявлений: * { “title” : “Google.com”, “x” : 10, “y” : 15, “width” : 200, “height” : 100, “color” : “#FFFFFF”, “image” :“http://www.ru-iphone.com/files/img_1...le_logo.jpg”, “text” : “Лучший поисковик всех времён и народов” }, … ]
Тезис: Использую в проекте парадигму ненавязчивого программирования, но столкнулся с проблемой.
Вопрос: А как, собственно, правильно ее использовать? Код динамич. у меня не работает.

Вот хтмл
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
        <title>Main Page</title>
        <link rel="stylesheet" type="text/css" href="CSS/main.css">
        <script type="application/javascript" src="JS/main.js">
        </script>
		<script type='application/javascript' src="JS/json/json2.js"></script>
    </head>
    <body>
        <div class="divs" contenteditable="true" id="div1">
            <textarea class="textareas" id="ta1">
            </textarea>
        </div>
        <button class="buttons" id="b1" value="Why not?">
            Edit AdBlock
        </button>
        <button class="buttons" id="b2" value="Value?">
            Load JSON
        </button>
    </body>
</html>


main.js

/**
 * @author 
 */

/*Textarea HTMLElement Finding*/
var txtArea = document.getElementById('ta1');

var btnEditAB = document.getElementById('b1');
var btnJSON = document.getElementById('b2');


/*probably JSON code of AdBlock*/
var ta_content = txtArea.innerText;

/*JSON-or-not checking */
function isJSON(string_code){
	
}
//code

//Edit-button press handler
/*
btnEditAB.onclick = function (ta_content){
	if(ta_content) 
	alert(JSON.parse(ta_content));
}
*/

/*
btnEditAB.onclick = function (){
 
	alert('You press button!');
}


*/

if (ta1) alert("TextArea finded!");

Соответственно ничего не выводится. Курю (повторно) Флэнегана..

Последний раз редактировалось JSTalker, 12.02.2011 в 17:33.
Ответить с цитированием
  #2 (permalink)  
Старый 12.02.2011, 18:22
Аватар для NoResponse
Профессор
Отправить личное сообщение для NoResponse Посмотреть профиль Найти все сообщения от NoResponse
 
Регистрация: 17.06.2010
Сообщений: 152

...скрипты отрабатывают раньше чем появляется body со всем содержимым
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2011, 19:10
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

NoResponse,
А! То есть onload надо запускать? Тогда функцию надо создавать чтоли?
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2011, 19:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,589

разбей свой main.js на функции и или через онлоад запусти.или или перед закрытием боди(1 вариант лучше).или в конец боди вынеси всё кроме функций,что должны быть обработчиками событий

Последний раз редактировалось dmitriymar, 12.02.2011 в 19:24.
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2011, 07:36
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Спасибо, разобрался.(вставил "объемлющую" функцию).

Следующий вопрос:
Как убедиться, что textarea пустая(В нее ничего не введено)?
Такой скрипт
/*probably JSON code of AdBlock*/
	var ta_content = txtArea.innerText;
	
	 btnEditAB.onclick = function (ta_content){
	 
if(ta_content!=="")
	 /*alert(JSON.parse(ta_content));
*/alert('Edit!');


не помогает.. Выводит "Edit!" даже если пусто в поле ввода...

Просто if (ta_content) и с != тоже пробовал. Все одно..

Последний раз редактировалось JSTalker, 14.02.2011 в 08:51.
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2011, 09:27
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Смотрю
Проверить, не пустое ли поле
тут через регулярные выражения реализовано. А нельзя ли как то по землянски?
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2011, 11:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,467

Сообщение от JSTalker
А нельзя ли как то по землянски?
Смый примитив...
if (document.getElementById('txt').value=='') {
   alert('Поле пустое')
}
Ответить с цитированием
  #8 (permalink)  
Старый 15.02.2011, 14:37
Аспирант
Отправить личное сообщение для JSTalker Посмотреть профиль Найти все сообщения от JSTalker
 
Регистрация: 29.06.2009
Сообщений: 92

Спасибо, уже проверил по длине
btnEditAB.onclick = function(ta_content){
    
        if (document.getElementById('ta1').value.replace(/\s+/g, '').length) 
            /*alert(JSON.parse(ta_content));*/
/*
            alert('TextArea is not empty!!');
*/
//				alert('JSON!');
// Parsing JSON from TextArea field and checking it for AdBlock structure
			try {

				var json_tav = JSON.parse(ta_content);
				//alert(json_tav["title"]);
				if (json_tav) alert('Its Ok!');
			}
			catch(SyntaxError){
				alert('Its not AdBlock JSON-code!')
	}
    }

А кто знает как работать с распарсенными JSON-объектами? Попытался вывести через алерт, проверенный здесь JSON-объект из задания:
Цитата:
[{ "title" : "Google.com", "x" : 10, "y" : 15, "width" : 200, "height" : 100, "color" : "#FFFFFF", "image" :"http://www.ru-iphone.com/files/img_1032_google_logo.jpg", "text" : "Лучший поисковик всех времён и народов" }]
Не выводится. Попытался вывести одно из его свойств алертом: и как свойство объекта, и как элемент ассоциативного массива. Все равно выдает исключение (Its not AdBlock JSON-code!').

Поэтому вопрос, как работать с JSON объектами после того как их распарсил? И... правильно ли я парсю?
Ответить с цитированием
  #9 (permalink)  
Старый 15.02.2011, 22:58
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

для начала, а почему пользователь вводит данные в JSON-формате?

Сообщение от JSTalker
Тезис: Использую в проекте парадигму ненавязчивого программирования, но столкнулся с проблемой.
Вопрос: А как, собственно, правильно ее использовать?
если используешь, у пользователя должна быть возможность работать с отключенным javascript
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мастер-класс по Highload: Разработка крупного масштабируемого web 2.0 проекта с нуля [DiMA] Серверные языки и технологии 30 17.11.2010 21:57
Разработка RIA веб интерфейса Волостнова Марина Работа 1 14.07.2010 19:10
Веб разработчик, удаленка, 1500$ denis.antonov Работа 3 02.07.2010 21:38
Веб справочник мессии Pflaume Ваши сайты и скрипты 6 29.03.2010 12:17
Архитектура расширяемого приложения. DeveloperRu Библиотеки/Тулкиты/Фреймворки 2 16.03.2010 23:52