Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   есть код, но работает только в одном браузере 2 (https://javascript.ru/forum/dom-window/21143-est-kod-no-rabotaet-tolko-v-odnom-brauzere-2-a.html)

Александр х@к 30.08.2011 15:38

есть код, но работает только в одном браузере 2
 
<!DOCTYPE HTML>
<html>
<body>
<meta charset="utf-8">
  <title>output</title>
 </head>
 <body>
  <form>
   <p>Введите длину в сантиметрах: <input type="number" name="cm" autofocus="autofocus" /></p>
   <p>Длина в дюймах: <output name="result" 
      onforminput="this.value=(this.form.cm.value/2.54).toFixed(2)">0</output></p>
  </form>

</body>
</html>


Он работает(Тег <output>) только в Опере

Как можно его подрихтовать, чтоб работал в мозилле и хроме, тоже.

Триви 30.08.2011 15:43

Нужно получать доступ к элементам по id, а не по name.

B@rmaley.e><e 30.08.2011 15:45

Цитата:

Сообщение от Александр х@к
Как можно его подрихтовать, чтоб работал в мозилле и хроме, тоже.

Так: https://developer.mozilla.org/En/Introduction и http://dev.chromium.org/developers/how-tos/get-the-code

Kolyaj 30.08.2011 15:47

А зачем вы придумали новый тег?

Octane 30.08.2011 15:51

Создавайте, пожалуйста, более информативные названия тем.

Александр х@к 30.08.2011 15:52

http://htmlbook.ru/html/output,
Kolyaj читай))

А других способов кроме https://developer.mozilla.org/En/Introduction и http://dev.chromium.org/developers/how-tos/get-the-code нет?

Триви 30.08.2011 15:57

Цитата:

Сообщение от Александр х@к (Сообщение 123516)
http://htmlbook.ru/html/output,
Kolyaj читай))

Тэг поддерживается только оперой..
Зачем вы тогда его используете, если хотите, чтобы код работал в мозилле и хроме :)

Александр х@к 30.08.2011 15:59

триви, хочу чтоб работал везде))Мне нужен код

Триви 30.08.2011 16:02

Цитата:

Сообщение от Александр х@к (Сообщение 123520)
триви, хочу чтоб работал везде))Мне нужен код

Так используйте другой тэг.. какие проблемы?
И не забудьте, что toFixed() не в ладах с IE

B@rmaley.e><e 30.08.2011 16:06

Цитата:

Сообщение от Александр х@к

Нет.

Триви 30.08.2011 16:40

<form>
   <p>Введите длину в сантиметрах: <input type="text" onKeyUp="document.getElementById('res').innerHTML=(this.value/2.54).toFixed(2)" name="cm" value="0" /></p>
   <p>Длина в дюймах: <span id="res">0</span></p>
</form>

Александр х@к 30.08.2011 16:51

триви, то, что нужно. а есть какая-то замена тега <meter> для ФФ(метер работает только в Хроме и Опере(11.0).

Александр х@к 30.08.2011 16:55

триви, ошибка когда вводишь 1см выводит 0,39дюймов

Триви 30.08.2011 17:01

Цитата:

Сообщение от Александр х@к (Сообщение 123546)
триви, то, что нужно. а есть какая-то замена тега <meter> для ФФ(метер работает только в Хроме и Опере(11.0).

Ты путаешь Божий дар с яишницей.
Метер твой это элемент HTML 5!
Если ты хочешь реализовать без его использования,
используй другие средства, простую таблицу наконец!

devote 30.08.2011 17:10

<style type="text/css">
.progress_bar {
    position: relative;
    width: 100px;
    height: 20px;
    border: 1px solid #000;
}
#percent {
    position: absolute;
    left: 0;
    top: 0;
    color: red;
}
#progress {
    position: absolute;
    left: 0;
    top: 0;
    width: 0;
    height: 20px;
    background-color: #00f;
}
</style>
<div class="progress_bar">
    <div id="progress"></div>
    <div id="percent">0%</div>
</div>
<button onclick="start();">Start</button>
<script type="text/javascript">
    function start( at ) {
        at = ++at || 0;
        var progress = document.getElementById('progress');
        var percent = document.getElementById('percent');
        progress.style.width = at + "px";
        percent.innerHTML = at + "%";
        if ( at < 100 ) {
            setTimeout( function() {
                start( at );
            }, 100 );
        }
    }
</script>

Триви 30.08.2011 17:12

Цитата:

Сообщение от Александр х@к (Сообщение 123552)
триви, ошибка когда вводишь 1см выводит 0,39дюймов

а должно сколько? :blink: :D

Александр х@к 30.08.2011 17:14

ой всё правильно)))

Александр х@к 30.08.2011 17:17

devote, то что нужно, а как сделать чтоб когда дошло 100% внизу появилось загружено?

devote 30.08.2011 17:22

<style type="text/css"> 
.progress_bar { 
    position: relative; 
    width: 100px; 
    height: 20px; 
    border: 1px solid #000; 
} 
#percent { 
    position: absolute; 
    left: 0; 
    top: 0; 
    color: red; 
} 
#progress { 
    position: absolute; 
    left: 0; 
    top: 0; 
    width: 0; 
    height: 20px; 
    background-color: #00f; 
}
#loaded {
    display: none;
}
</style> 
<div class="progress_bar"> 
    <div id="progress"></div> 
    <div id="percent">0%</div> 
</div> 
<div id="loaded">Loaded</div>
<button onclick="start();">Start</button> 
<script type="text/javascript"> 
    function start( at ) { 
        at = ++at || 0; 
        var progress = document.getElementById('progress'); 
        var percent = document.getElementById('percent'); 
        progress.style.width = at + "px"; 
        percent.innerHTML = at + "%"; 
        if ( at < 100 ) { 
            setTimeout( function() { 
                start( at ); 
            }, 100 ); 
        } else {
            document.getElementById('loaded').style.display = 'block';
        }
    } 
</script>

Триви 30.08.2011 17:25

Цитата:

Сообщение от Александр х@к (Сообщение 123563)
devote, то что нужно, а как сделать чтоб когда дошло 100% внизу появилось загружено?

if ( at == 100 ) {
    document.getElementById('res').innerHTML="Загружено."
}

Под прогрессбаром помещаешь:
<span id="res"></span>

Триви 30.08.2011 17:27

Цитата:

Сообщение от Триви (Сообщение 123566)
if ( at == 100 ) {
    document.getElementById('res').innerHTML="Загружено."
}

Под прогрессбаром помещаешь:
<span id="res"></span>

Не, у devote красивше ))
Всё таки в скриптах нужно, чтобы по возможности было как можно меньше даных :)

devote 30.08.2011 17:31

Цитата:

Сообщение от Триви
Всё таки в скриптах нужно, чтобы по возможности было как можно меньше даных

Верно говоришь, совать ресурсы в скрипты плохой тон. Все ресурсы лучше держать отдельно от скриптов.

Александр х@к 30.08.2011 17:47

а под прогрессбаром каким

В стилях строка 2 иди дива строка 26?

Триви 30.08.2011 17:49

Цитата:

Сообщение от Александр х@к (Сообщение 123573)
а под прогрессбаром каким

В стилях строка 2 иди дива строка 26?

Александр, тебе ж бесплатно готовый код тут рисуют,
а ты ещё умудряешься такие вопросы задавать :D

Александр х@к 30.08.2011 18:08

та ладно я пошутил :victory:

Александр х@к 30.08.2011 18:30

<style type="text/css">
.progress_bar {
    position: relative;
    width: 100px;
    height: 20px;
    border: 1px solid #000;
}


если width: 100px; поменять на другое число, то строка загрузки доходит до обычного, то при ширене 300 остается свободное место за полосой, как сделать чтоб растягивалось, автоматически?

Триви 30.08.2011 19:33

Цитата:

Сообщение от Александр х@к (Сообщение 123588)

если width: 100px; поменять на другое число, то строка загрузки доходит до обычного, то при ширене 300 остается свободное место за полосой, как сделать чтоб растягивалось, автоматически?

Касабельно кода devote,
если тебе нужен бар шириной в 300 px,
с каждым вызовом start() увеличивай значение переменной at не на 1,
как в представленном коде, а на 3.

Александр х@к 30.08.2011 20:13

не понял, куда в какой строке в что поставить?

Триви 30.08.2011 20:17

Цитата:

Сообщение от Александр х@к (Сообщение 123633)
не понял, куда в какой строке в что поставить?

Если даже не пытаться изучать материал,
то вставить можно только в одно известное место ;)

Александр х@к 30.08.2011 20:25

ну не догоняю


Часовой пояс GMT +3, время: 10:12.