Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   document.write - как дописать документ (https://javascript.ru/forum/misc/1046-document-write-kak-dopisat-dokument.html)

SunYang 23.02.2008 13:29

document.write - как дописать документ
 
Я захотел сделать функцию, которая при щелчке на button дописывает в текуший html документ фразу (например в одну из ячеек уже написанной в этом документе таблицы), но!!! с чем я столкнулся - при иснользованиии функции document.write() необходимая строка не дописывается, а пишется заново на чистом листе.....как решить эту проблему...?
Спасибо.

Phoenix 23.02.2008 16:38

вот код:
<table border=1>
<tr><td id='write'>данные</td></tr>
</table>
<script language="JavaScript" type="text/javascript">
function change_data(Adata){
document.getElementById("write").innerHTML=Adata;
}
</script>
<input type="text" id="text_add" />
<input type='button' value='Нажми' onClick='change_data(document.getElementById("text_add").value)' />

SunYang 15.03.2008 02:42

я вот все пытаюсь сделать чеб при паведении мыши на ссылку али картинку, вылетала поверх уже загруженного html документа табличка с описанием этой ссылки или картинки. Но вот проблема - даже методом innerHTML табличка не поверх документа вылезает, а в чистом документе...чет я туплю

помогите мне...:(

Dmitry A. Soshnikov 15.03.2008 16:22

SunYang,

- создай скрытый div с абсолютным позиционированием
- при наведении мыши на ссылку (картинку) показывай див и присваивай ему координаты мыши (меняй свойства top и left стиля дива) и меняй соответственно innetHTML div'a

SunYang 16.03.2008 01:04

УРА!!! Я сделал вылезающую табличку!!! (на 3 ссылки)

function lifes() {
eot = event.srcElement
if(eot.id=="con_0") {
rem=document.getElementById("move_0")
if(rem.style.visibility=="hidden")
rem.style.visibility="visible"
else
rem.style.visibility="hidden"
}
if(eot.id=="con_1") {
rem=document.getElementById("move_1")
if(rem.style.visibility=="hidden")
rem.style.visibility="visible"
else
rem.style.visibility="hidden"
}
if(eot.id=="con_2") {
rem=document.getElementById("move_2")
if(rem.style.visibility=="hidden")
rem.style.visibility="visible"
else
rem.style.visibility="hidden"
}
}

Dmitry A. Soshnikov 16.03.2008 01:41

SunYang, молодец =) А теперь можешь оптимизировать - ведь все три блока у тебя идентичны и меняются только от индекса в id элемента. Поэтому можно оставить только один блок и для переменной rem брать элемент с id, равным "move_" + "последний символ из id переменной eot".

Rus 13.12.2013 02:06

доброй ночи, не стал плодить темы. у меня похожий вопрос:
document.write(sValue);
пишет значение на новом листе а не тут же в документе. просьба не бить палками, я новичек. Пытаюсь самостоятельно разобраться, но что то пока не выходит. Вот код

function findValue(li) {
if( li == null ) return alert("No match!");

if( !!li.extra ) var sValue = li.extra[0];

else var sValue = li.selectValue;

//alert("The value you selected was: " + sValue);
document.write(sValue);

}

Rise 13.12.2013 02:41

Rus, document.write для загруженных документов не используют

danik.js 13.12.2013 02:43

Цитата:

Сообщение от Rus
document.write(sValue);

Замени на
// Создаем текстовый узел
var textNode = document.createTextNode(sValue);
// Добавляем его на страницу
document.body.appendChild(textNode);

Другой вариант, с поддержкой HTML:

// Создаем DIV элемент
var holder = document.createElement('div');
holder.innerHTML = sValue;
document.body.appendChild(holder);

Третий вариант, наиболее похож на твой:

document.body.insertAdjacentHTML('beforeend', sValue);

Rus 13.12.2013 03:43

Спасибо огромное, получилось, сейчас буду дальше писать обработчик. Если буду сидеть более суток, а так как я с нуля пытаюсь. курю гугл как говорят, спрошу по теме далее. Надеюсь до этого не дойдет.


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