Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 05.02.2012, 08:39   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Gadget самописка

<html>
<head><title>test</title>


<style type="text/css">
body{width:200px;
     height:200px;}
div{
     width:200px;
     height:150px;
     padding: 0;
    }
</style>

</head>
<script type="text/javascript">
var texts=[]
var count=0

    function input_text(){
    var c=Math.floor(Math.random()*1);
    var all=new Date();
       if(c==0)
       {document.getElementById("idinp").value="Как дела?";
       }else if(x==1){
       if(all.GetHours<12 && all.GetHours>5){document.getElementById("idinp").value="Доброе утро,что не спим?";
        } else {
          document.getElementById("idinp").value="Что тварим?";}
         }//else if(x==2){
          

    }
    
 function set_text(){
     texts[count]=document.getElementById("idinp").value;
     count++;
     document.getElementById("idinp").blur();
     input_text();
     update();
    }
    
  function update(){
    var tmp="<font color=#C0C0C0><i>Нету записей</i></font>";
    for(i=0;i<count;i++){
        if(texts[i]=='')continue;
        if(tmp=="<font color=#C0C0C0><i>Нету записей</i></font>"){    
            tmp="<a href='#' onClick='free("+i+");'>"+texts[i]+"</a>";
        }else{
        tmp=tmp+"<br><a href='#' onClick='free("+i+");'>"+texts[i]+"</a>";
              }
    }
      document.getElementById("text_line").innerHTML=tmp+"<br>_________________";
    }
    
    function free(n){
      texts[n]="";
      update();
    }
</script>
<body onLoad="input_text();update();">
<div id="text_line">non</div>
<input type="text" size="20" value="" name="inp" id="idinp" onClick="document.getElementById('idinp').value='';" onChange="javascript:set_text()">
</body>

</html>
Работает везде где кроме IE ну и понятно-гаджетах,не обрабатывает onChange,как решить проблему?
__________________
Сайт: http://iexpo.ml

Последний раз редактировалось RegIon, 06.02.2012 в 22:50.
(Offline)
 
Ответить с цитированием
Старый 06.02.2012, 22:51   #2
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Gadget самописка

__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 08.02.2012, 23:43   #3
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: Gadget самописка

Не хотелось бы казаться грубым, но ваш код немного дерьмо.
Написал пример:
<html>
<
head>
<
title>Cat knows what is good for you.</title>
<
style type="text/css">
body {
    
font-familyVerdanaArialSans;
    
font-size12px;
}
#container {
    
width480px;
}
#lines {
    
padding4px;
    
background#f7f7f7;
    
border1px solid #ccc;
}
#input {
    
width450px;
    
padding2px;
}
#inbtn {
    
floatright;
    
width25px;
}
.
line {
    
margin-top4px;
    
padding-left2px;
    
border-left3px solid #eee;
}
.
line_neutral border-left-color#ccc; }
.line_user border-left-color#d87; }
.line_system border-left-color#78e; }
</style>
</
head>
<
body onLoad="init();">
<
div id="container">
<
div id="lines"></div>
<
button type="button" id="inbtn" onClick="user_input();">&gt;</button>
<
input type="text" id="input" onChange="user_input();">
</
div>
<
script type="text/javascript">
var 
lines = []; // pointers to text <div>'s
var lines_el document.getElementById('lines'); // main text <div>
var input_el document.getElementById('input'); // input field
var questions = [
    
// questions to be asked randomly:
    
"What's your name?",
    
'Do you like single-quoted strings?',
    
'Insert more questions here, okay?'
];
function 
random(n) { return Math.floor(Math.random() * n); }

function 
line_onclick(event) {
    
lines_el.removeChild(this);
    
lines.splice(lines.indexOf(this), 1); // remove this element from lines array
}

function 
line_add(texttype) {
    var 
el document.createElement('div'); // create a new div
    
el.innerHTML text// set contents
    
el.onclick line_onclick// bind click event
    
if (type === undefinedtype 'neutral'// default type if not specified
    
el.className 'line line_' type// set <div> class property
    
lines_el.appendChild(el); // add it to lines containers
    
lines.push(el); // add it to list
}

function 
feedback(text) {
    
// convert to lowercase, for easier processing:
    
text text.toLowerCase();
    
// handle input text here:
    
if (text == 'hi' || text == 'hello') return 'How are you?';
    
// return random question:
    
return questions[random(questions.length)];
}

function 
user_input() {
    var 
text input_el.value// get input
    
line_add(text'user'); // add user input line
    
line_add(feedback(text), 'system'); // add answer line
    
input_el.value ''// reset input text
}

function 
init() {
    
lines_el.innerHTML ''// reset contents of lines box
    
line_add('Example by YellowAfterlife');
    
line_add('Hello, user''system');
}
</script>
</body>
</html> 
Если нужно по Enter делать действия, то нужно привязать onkeydown событие (keydown для старых IE).
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Старый 09.02.2012, 00:21   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Gadget самописка

Работает везде где кроме IE ну и понятно-гаджетах,не обрабатывает onChange,как решить проблему?
Использовать jQuery, там многие проблемы кроссбраузерности (в частности глюки IE) уже решены.
$('#idinp').change(function(){ /* ЧТО ДЕЛАТЬ В СЛУЧАЕ СОБЫТИЯ change */ });
И да, сэр, я, конечно, понимаю, что вы новичок, но ваша манера писать обработчики прямо в атрибутах навроде
onChange="javascript:set_text()"
есть несколько говно. Фу так делать. Рекомендую использовать вот такой стиль (с использованием jQuery):

$(document).ready(function(){
$('СЕЛЕКТОР').click(function(){ /* Обработчик события click */ }); $('СЕЛЕКТОР').change(function(){ /* Обработчик события change */ }); $('СЕЛЕКТОР').другое_событие(function(){ /* Обработчик другого события */ });
});
Избавляет от многих граблей, проверено.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (09.02.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 09:28.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com