andrecool Posted June 17, 2011 Report Share Posted June 17, 2011 (edited) Скрипт Показать / Скрыть текст.В Google Chrome и Internet Explorer работает нормально, но в Mozilla Firefox не работает.Скрипт взят здесь http://www.sdws.ru/topic.php?t=3&id=10<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Показать-Скрыть</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><style type="text/css">a {outline: none;}a img {border: none;}</style><script type="text/javascript">function on(n){eval("document.all.text"+n+".style.display='block';");eval("document.all.ontext"+n+".style.display='none';");eval("document.all.offtext"+n+".style.display='inline';");}function off(n){eval("document.all.text"+n+".style.display='none';");eval("document.all.ontext"+n+".style.display='inline';");eval("document.all.offtext"+n+".style.display='none';");}</script></head><body><h3>Показать-Скрыть</h3><span id='ontext1' style='display: inline;'><a href="javascript:on('1');"><img src="img/1.png" alt="Показать" title="Показать"></a></span><span id='offtext1' style='display: none;'><a href="javascript:off('1');"><img src="img/2.png" alt="Скрыть" title="Скрыть"></a></span><div id='text1' style='display: none; text-align: justify;'>Скрытый Текст Скрытый Текст Скрытый Текст Скрытый Текст<br>Скрытый Текст Скрытый Текст Скрытый Текст Скрытый Текст<br>Скрытый Текст Скрытый Текст Скрытый Текст Скрытый Текст<br>Скрытый Текст Скрытый Текст Скрытый Текст Скрытый Текст<br></div></body></html> Edited June 17, 2011 by andrecool Link to comment Share on other sites More sharing options...
0 psywalker Posted June 18, 2011 Report Share Posted June 18, 2011 Не работает, потому что тупо копируешь. А вообще для такой задачи очень жирно использовать eval, он жутко тормозит процесс в связи со своей компиляцией кода. Если не хочешь писать код сам, поищи получше что нибудь. Link to comment Share on other sites More sharing options...
0 ctpz Posted June 18, 2011 Report Share Posted June 18, 2011 Вот вариант скрипта, работающий во всех броузерах и весящий меньше. Link to comment Share on other sites More sharing options...
0 psywalker Posted June 18, 2011 Report Share Posted June 18, 2011 Вот вариант скрипта, работающий во всех броузерах и весящий меньше.+ подключать библиотеку? Link to comment Share on other sites More sharing options...
0 ctpz Posted June 18, 2011 Report Share Posted June 18, 2011 Скрипт работает и при версии библиотеки 1.3.2 minified gzipped, которая весит 20 КБ. Link to comment Share on other sites More sharing options...
0 psywalker Posted June 18, 2011 Report Share Posted June 18, 2011 Скрипт работает и при версии библиотеки 1.3.2 minified gzipped, которая весит 20 КБ.Это накладно для такой мини-задачи, а потом твой пример делает совсем другое, чем просто открытие/скрытие текста. Link to comment Share on other sites More sharing options...
0 kohozabr Posted June 18, 2011 Report Share Posted June 18, 2011 (edited) Переделанный методом тыка спойлер Edited June 18, 2011 by kohozabr Link to comment Share on other sites More sharing options...
0 andrecool Posted June 18, 2011 Author Report Share Posted June 18, 2011 Вот вариант скрипта, работающий во всех броузерах и весящий меньше.jQuery это конечно круто, но хотелось простой спойлер со сменой надписи Показать / Скрыть или картинок Link to comment Share on other sites More sharing options...
0 psywalker Posted June 18, 2011 Report Share Posted June 18, 2011 Вот вариант скрипта, работающий во всех броузерах и весящий меньше.jQuery это конечно круто, но хотелось простой спойлер со сменой надписи Показать / Скрыть или картинокКажись в ФФ не пашет document.all Link to comment Share on other sites More sharing options...
0 kohozabr Posted June 18, 2011 Report Share Posted June 18, 2011 (edited) А jQuery пашет в FF? Edited June 18, 2011 by kohozabr 1 Link to comment Share on other sites More sharing options...
0 andrecool Posted June 18, 2011 Author Report Share Posted June 18, 2011 Этот код работает во всех браузерах, но в нем не меняется надпись Показать/Скрыть<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Показать/Скрыть</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><style type="text/css">a {outline: none;}a img {border: none;}</style><script type="text/javascript">function look(type){param=document.getElementById(type);if(param.style.display == "none") param.style.display = "block";else param.style.display = "none"}</script></head><body><!-- блок "div1" --><a href="javascript:look('div1');">Показать/Скрыть</a><div id="div1" style="display: none;">Скрытый текст Скрытый текст Скрытый текст Скрытый текст</div></body></html> Link to comment Share on other sites More sharing options...
0 Int Posted June 18, 2011 Report Share Posted June 18, 2011 Ну так меняй её! Передавай в функцию параметр this, получай у него innerHTML (это короче, чем firstChild.nodeValue) и меняй егоДа, при твоей постановке задачи скрипт будет косячить. Изначально текст скрыт, style.display = '', а значит, что при первом нажатии он скроется ещё раз. Используй или computedStyle или просто поменяй местами параметры у if.«javascript:» писать не обязательноКто это там ради 7 строчек предлагает 20 кб подгружать? Васы бы в 80-е года, чтобы учились писать оптимальные агоритмы. Сегодня таскаете за собой ненужные библиотеки, а завтра для расчёта траектории ракеты вам понадобится кластер на 100 машин. Link to comment Share on other sites More sharing options...
0 andrecool Posted June 18, 2011 Author Report Share Posted June 18, 2011 (edited) Вот нашел нормальный рабочий примерсайт этого скрипта<html><head><title>JavaScript Скрыть текст</title></head><body><script language="javascript">function Switch(idd,idi) { elm=document.getElementById(idd); img=document.getElementById(idi); if(elm.style.display=="none") { elm.style.display=""; img.src="images/dash.gif"; } else { elm.style.display="none"; img.src="images/krest.gif"; } return false; }</script><h3>JavaScript Скрыть текст</h3><a href="" onclick="return Switch('ID','IDimg')"><img src="images/krest.gif" border="0" height="16" width="32" align="middle" id="IDimg">Открыть/Закрыть</a><br><div style="display:none" id="ID"><h2>Ура !!!<h2><h3>Получилось !!!<h3></div></body></html> Edited June 18, 2011 by andrecool Link to comment Share on other sites More sharing options...
0 Int Posted June 18, 2011 Report Share Posted June 18, 2011 Опять с твоей ситуацией первое нажатие пройдёт вхолостую, потому что сперва выполнится ветка else, так как style.display пустой при запуске.А onclick на картинку разве лучше смотрится? Зачем эти извраты с return?<h2>Ура !!!<h2><h3>Получилось !!!<h3>Тэги-то закрывай. А писание скрипта вынеси лучше в <head> Link to comment Share on other sites More sharing options...
0 andrecool Posted June 18, 2011 Author Report Share Posted June 18, 2011 Опять с твоей ситуацией первое нажатие пройдёт вхолостую, потому что сперва выполнится ветка else, так как style.display пустой при запуске.А onclick на картинку разве лучше смотрится? Зачем эти извраты с return?Если вы разбираетесь в javascript помогите пожалуйста исправить ошибки в скрипте. Link to comment Share on other sites More sharing options...
0 Int Posted June 18, 2011 Report Share Posted June 18, 2011 Ну я ж писал, что надо if и else поменять местамиf(elm.style.display=="block") { elm.style.display="none"; img.src="images/dash.gif"; } else { elm.style.display="block"; img.src="images/krest.gif"; }<img Switch('ID','IDimg')....Вот так ещё можно сократить и выкинуть <a>А ещё для сокращения кода можно сделать Switch('ID',this), и соответственно изменить функцию. Даже можно Switch(this.nextSibling,this) Link to comment Share on other sites More sharing options...
0 andrecool Posted June 18, 2011 Author Report Share Posted June 18, 2011 Ну я ж писал, что надо if и else поменять местамиf(elm.style.display=="block") { elm.style.display="none"; img.src="images/dash.gif"; } else { elm.style.display="block"; img.src="images/krest.gif"; }<img Switch('ID','IDimg')....Вот так ещё можно сократить и выкинуть <a>А ещё для сокращения кода можно сделать Switch('ID',this), и соответственно изменить функцию. Даже можно Switch(this.nextSibling,this)<script type="text/javascript">function Switch(idd,idi) { elm=document.getElementById(idd); img=document.getElementById(idi); if(elm.style.display=="block") { elm.style.display="none"; img.src="images/krest.gif"; } else { elm.style.display="block"; img.src="images/dash.gif"; } return false; }</script>Так правильно?Правда картинки тоже поменял местами так как они работали наоборот. Link to comment Share on other sites More sharing options...
0 Int Posted June 19, 2011 Report Share Posted June 19, 2011 Ну если работает хорошо, то нормально.Про картинки я забыл, да. 1 Link to comment Share on other sites More sharing options...
0 andrecool Posted June 19, 2011 Author Report Share Posted June 19, 2011 Ну если работает хорошо, то нормально.Про картинки я забыл, да.Вы говорили что здесь можно сделать сокращения,не считая конечно высоты,ширины и бордюра<a href="" onclick="return Switch('ID','IDimg')"><img src="images/krest.gif" border="0" height="16" width="32" align="middle" id="IDimg"></a> Link to comment Share on other sites More sharing options...
0 Int Posted June 19, 2011 Report Share Posted June 19, 2011 Да, можно onclick задать самой картинке, а не ссылке. И выкинуть return Link to comment Share on other sites More sharing options...
0 andrecool Posted June 19, 2011 Author Report Share Posted June 19, 2011 (edited) Да, можно onclick задать самой картинке, а не ссылке. И выкинуть return<script type="text/javascript">function Switch(idd,idi) { elm=document.getElementById(idd); img=document.getElementById(idi); if(elm.style.display=="block") { elm.style.display="none"; img.src="img/krest.gif"; } else { elm.style.display="block"; img.src="img/dash.gif"; } }</script><img onclick="Switch('id','idimg')" src="img/krest.gif" id="idimg"> Edited June 19, 2011 by andrecool Link to comment Share on other sites More sharing options...
0 MAXMUSIC Posted August 16, 2011 Report Share Posted August 16, 2011 Вот хороший спойлер как на “rutracker.org” Работает везде Неограниченная вложенность с функцией закрытияwebfile.ru/5489455 Link to comment Share on other sites More sharing options...
0 Joerrigo Posted March 27, 2013 Report Share Posted March 27, 2013 (edited) Новый вопрос - новая тема. Edited March 27, 2013 by Great Rash Link to comment Share on other sites More sharing options...
Question
andrecool
Скрипт Показать / Скрыть текст.
В Google Chrome и Internet Explorer работает нормально, но в Mozilla Firefox не работает.
Скрипт взят здесь http://www.sdws.ru/topic.php?t=3&id=10
Edited by andrecoolLink to comment
Share on other sites
22 answers to this question
Recommended Posts