Вопрос:
Можно ли , чтобы gif-ка в IE загружалась,а в NN нет. Если можно, то как это сделать.
-----------------------------------------------------------------------------------
Ответ:
Ну ее можно просто не включать в страницу если броузер - Netscape:
<script> browser_name = navigator.appName; browser_version = parseFloat(navigator.appVersion); if (browser_name == "Netscape") { roll = 'true';} if (roll == 'false') { document.write("<img src='xxx.gif'>"); } </script>
Ответ прислал Valery Papushin
Поставьте в ссылке на gif-ку обратный слеш, IE загрузит, а NN оставит пустое место.
Ответ прислал DoctorGenius service
Да, это возможно. На странице сайта надо поставить скрипт, который в зависимости от браузера будет загружать определенную html страницу.
1.htm для Explorer
2.htm для Netscape
3.htm для других браузеров.
<script language="JavaScript"> <!-- if (navigator.appName == "Netscape") window.location.href = "1.htm"; else if (navigator.appName == "Microsoft Internet Explorer") window.location.href = "2.htm"; else window.location.href = "3.htm"; // --> </script>
Ответ прислал Комлев Михаил
Напишите скрипт на VBScript (т.к. NN его не поддерживает картинки там не будет) Правда не знаю как это будет на VBScript, аналог на JavaScript:
<script> document.write("<IMG SRC=gif.jpg ALT=gif1>") </script>или через document.images Вам осталось всего-лишь изучить VBScript :)
Вопрос:
Хочу сделать красивой первую страничку сайта, чтобы была картинка, а разные ее части связаны с хтмл-файлами. и при наведении на связанную область в центре появлялся определенный рисунок. Как это сделать подскажите?
-----------------------------------------------------------------------------------
Ответ:
Это делается очень просто в программе "FrontPage". Нажимете на панели "Image Toolbar" кнопку с прямоугольником, кружком или ломанной линией (все зависит от того, каккой объект Вы хотите выбрать для нанесения на нем ссылки -- соответственно прямоугольный, круглый или хотите определить границы сами). Выделяете на рисунке область, в которую надо занести ссылку. Выскакивает окно. В окошке, который подписан "URL:" пишите ссылку, куда надо перейти. Описал запутанно, но если попробуете на практике -- сразу разберетесь.
Ответ прислал Комлев Михаил
Через MAP.
<MAP name=Map0_about><AREA coords=10,0,122,14 href="/click?http://www.site.ru/html/about/about_main.htm" shape=RECT target=_top><AREA coords=10,16,128,28 href="/click?http://www.site.ru/html/about/about_finances.htm" shape=RECT target=_top><AREA coords=131,16,203,28 href="/click?http://www.site.ru/html/about/about_press.htm" shape=RECT target=_top></MAP>
Ответ прислал Sasha Cutter
Придется картинку делать составной: главную вставить в середину(так красивее), а остальный куда душе угодно... При наведении на какую-нибудь из картинок - главная меняется, когда мышу с картинки убираешь - главная становится прежней - думаю ты так хотел. Надо использовать такой скрипт:
<script language="JavaScript"> if (navigator.appVersion.indexOf("2.") != -1) { check = false; } if ((navigator.appVersion.indexOf("3.") != -1) && (navigator.appName.indexOf("Explorer") != -1)) { check = false; } else { check = true; } im1ch = new Image(); im1ch.src = "1.gif"; im1chon = new Image(); im1chon.src = "2.gif"; function imon(name) {document["change"].src = eval(name + "chon.src"); } function imoff(name) { document["change"].src = eval(name + "ch.src"); } NN3 = true; function on(name) { if (check == true){ imon(name);} } function off(name) { if (check == true){ imoff(name);} } </script>Где сначало идет проверка версии браузера(будет ли работать скрипт), затем описание картинки и той, что ее сменяет (обознач im1 и im1chon), а потом сам скрипт замены... Картинок можно вставить сколько угодно (пример im2, im3,.. imn...), а вот вызывать их надо так...
<img SRC="main.gif" NAME="change">
<a href="/click?http://_переход,как и просил_" onMouseOver="on('im1')" ; onMouseOut="off('im1')">
<img SRC="1.gif" NAME="im1" BORDER="0"></a>
Первая строка - первоночальное изображение, с заданием имени change (см.скрипт), потом дополнит. изобр.(таких можно сделать много по аналогии)... Вот и все:)
Вопрос:
меню сделано с применением Java (onmouseover и onmouseout), проблема в том, что картинки которые должны вылазить в onmouseover, загружаются только тогда когда на них наводишь мышей, а нужно сделать так что бы они загружались вместе со страницей
-----------------------------------------------------------------------------------
Ответ:
по тому что на каналах с узкой пропускной способностью получается следующая картина: я навожу мышей на пункт меню, а картинка которая должна вывалиться в onmouseover, вылазит только через 3-5 секунд.
Ответ прислал Андрей Р. Сирвутис
Поместите следующий скрипт между тегами <head> .. </head>
<script language="JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } //--> </script>А далее конструкция примерно такого вида:
<BODY onLoad="MM_preloadImages('pic1.gif','pic2.jpg')">
Все. Ваши картинки будут загружены заранее и при наведении курсора на объект и, следовательно, срабатывании onMouseOver будут сразу показаны. Единственный момент - посетитель, в принципе, должен дождаться завершения загрузки страницы и картинок. Иначе повторится ситуация, описанная в вопросе
Вопрос:
Помогите сделать бегущую строку для Netscape на Java-скрипт.
-----------------------------------------------------------------------------------
Ответ:
Вот скрипт, который работает в Netscape Communicator 4.51 и в Internet Explorer 4 Кроме того, в эту бегущую строку можно вставлять ссылки.
<script language="JavaScript1.2">/* Cross browser marquee script- ї Dynamic Drive (www.dynamicdrive.com) For full source code, installation instructions, 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com */ //Specify the marquee's width (in pixels) var marqueewidth=330 //Specify the marquee's height (in pixels, pertains only to NS) var marqueeheight=20 //Specify the marquee's scroll speed (larger is faster) var speed=6 //Specify the marquee contents var marqueecontents='<font face="Arial"><strong><big>Бегущая строка. Можно также <a href="/click?http://">Вставлять линки.</a>Ваш текст.......</big></strong></font>' if (document.all) document.write('<marquee scrollAmount='+speed+' style="width:'+marqueewidth+'">'+marqueecontents+'') function regenerate(){ window.location.reload() } function regenerate2(){ if (document.layers){ setTimeout("window.onresize=regenerate",450) intializemarquee() } } function intializemarquee(){ document.cmarquee01.document.cmarquee02.document.write( '<nobr>'+marqueecontents+'</nobr>') document.cmarquee01.document.cmarquee02.document.close() thelength=document.cmarquee01.document.cmarquee02.document.width scrollit() } function scrollit(){ if (document.cmarquee01.document.cmarquee02.left>=thelength*(-1)){ document.cmarquee01.document.cmarquee02.left-=speed setTimeout("scrollit()",100) } else{ document.cmarquee01.document.cmarquee02.left=marqueewidth scrollit() } } window.onload=regenerate2 </script> <ilayer width=&{marqueewidth}; height=&{marqueeheight}; name="cmarquee01"> <layer name="cmarquee02"></layer> </ilayer>
Вопрос:
Срочно нужна javа: при наведении на одну заголовок (картинку), я вижу две новые картинки, которые находятся в разных местах, т.е. с одной стороны картинку, а в другом месте описание этой картинки.
-----------------------------------------------------------------------------------
Ответ:
Вот скрипт:
<script language="JavaScript"> if (navigator.appVersion.indexOf("2.") != -1) { check = false; } if ((navigator.appVersion.indexOf("3.") != -1) && (navigator.appName.indexOf("Explorer") != -1)) { check = false; } else { check = true; } im1ch = new Image(); im1ch.src = "1.jpg"; im1chon = new Image(); im1chon.src = "2.jpg"; im1 = new Image(); im1.src = "1_1.jpg"; im1on = new Image(); im1on.src = "1_2.jpg"; function imon(name) {document["change"].src = eval(name + "chon.src"); } document[name].src = eval(name + "on.src"); function imoff(name) { document["change"].src = eval(name + "ch.src"); } document[name].src = eval(name + ".src"); NN3 = true; function on(name) { if (check == true){ imon(name);} } function off(name) { if (check == true){ imoff(name);} } </script>А вот и вызов:
<a href="/click?http://!!!" onMouseOver="on('im1')" ; onMouseOut="off('im1')">
<img SRC="1.jpg" NAME="im1" BORDER="0"></a><br><img "1_1.jpg" NAME="change">
Вопрос:
Скажите, как в JavaScript поменять заголовок окна браузера для Netscape? document.title почемуто для него не работает
-----------------------------------------------------------------------------------
Ответ:
Скорее всего никак, ибо document.title в NN является read-only. Можно попробовать:
<HTML> <HEAD> <title>ttt</title> </HEAD> <BODY> <form> <script> function changeTitle(newTitle) { document.write("<title>"); document.write(newTitle); document.write("</title>"); } </script> <input type="text" name="txtTitle"> <input type="submit" value="Change title" onClick="changeTitle(document.forms[0].txtTitle.value)"> </form> </BODY> </HTML>но работает такая конструкция некорректно. Других способов нет.
Вопрос:
Скрипт открывает popup и фокус передаётся ему, как сделать обратное?
-----------------------------------------------------------------------------------
Ответ:
<Script Language="JavaScript"> Artel=window.open("Frame2.htm","Artel", "Width=500, Height=160, Toolbar=0, Location=0", "Status=0, Menubar=0, Scrollbars=0, Resizable=0") ; // focus(); </Script>
Вопрос:
:^D
-----------------------------------------------------------------------------------
Ответ:
:^D
Вопрос:
Есть ли скрипт определяющий размер просмоторщика пользователя (ну там 640х480 и т.д.)?
-----------------------------------------------------------------------------------
Ответ:
<script language="JavaScript"> var height=0; var width=0; if (self.screen) { // for NN4 and IE4 width = screen.width height = screen.height } else if (self.java) { // for NN3 with enabled Java var jkit = java.awt.Toolkit.getDefaultToolkit(); var scrsize = jkit.getScreenSize(); width = scrsize.width; height = scrsize.height; } </script> </head> <body> <script language="JavaScript"> <!-- if (width > 0 && height > 0) { document.writeln('Ваше разрешение: ',width,'x',height) } else { document.writeln('Я не знаю вашего разрешени\\я') } //--> </script>
Ответ прислал Литвинов Роман
Скрипт, который в соответствие с разрешением экрана юзера направляет на соответствующую страницу!
<head> <script language="JavaScript"> <!-- var height=0; var width=0; if (self.screen) { // for NN4 and IE4 width = screen.width height = screen.height } else if (self.java) { // for NN3 with enabled Java var jkit = java.awt.Toolkit.getDefaultToolkit(); var scrsize = jkit.getScreenSize(); width = scrsize.width; height = scrsize.height; } // --> </script> </head> <body> <script language="JavaScript"> <!-- if (width == 800 && height == 600) { location.href = "800x600.htm" } else if (width == 640 && height == 480) { location.href = "640x480.htm" } else { location.href = "unknown.htm" } // --> </script> </body>
Вопрос:
Как сделать предзагрузку изображений (гифов)
-----------------------------------------------------------------------------------
Ответ:
и потом, при ОнМаусОвер, сделать одновременно замену изображения и строки статуса, а при ОнМаусАут - восстановить изображение (строку статуса)? Это делается при помощи function - это я знаю. И значение строки статуса у меня меняется (window.status=document.title - это понятно). Не понятно только с рисунками.
Ответ прислал DoctorGenius service
Вот скрипт, который будет заменять рисунок и надпись в status bar при наведении мыши. Если мышь убрать - все вернется как было.
Эту часть скрипта разместить между тегами <HEAD>...</HEAD>
<script language="javascript1.1"> <!-- firstimage=new Image() firstimage.src="p1.gif" secondimage=new Image() secondimage.src="p2.gif" //--> </script> <script> <!-- function filter(imagename,objectsrc){ if (document.images) document.images[imagename].src=eval(objectsrc+".src") } //--> </script>Эту часть скрипта разместить между <BODY>...</BODY>
<a href="/click?http://" onmouseover="filter('a','secondimage');window.status='Описание ссылки в status bar'; return true;" onmouseout="filter('a','firstimage');window.status=''; return true;">
<img src="p1.gif" name="a" border=0></a>
Вопрос:
: как только юзер нажимает в браузере кнопку 'Back', он снова попадает на index.htm, которая тут же отсылает его обратно. Получается, что страница как бы не позволяет пользователю с нее уйти. Как с этим бороться?
-----------------------------------------------------------------------------------
Ответ:
Моя страница index.htm выглядит следующим образом:
<script> if(браузер==InternetExplorer)document.location.href="страница_под_IE.htm"; if(браузер==NetscapeNavigator)document.location.href="страница_под_NN.htm"; document.location.href="страница_под_все_остальные_браузеры.htm"; </script>Скрипт прекрасно работает: как только юзер под IE заходит на страничку, он сразу же попадает на "страница_под_IE.htm"
Ответ прислал YURIK
Сделай отдельную кнопку входа Например: Немного доделать ваш скрипт.
<script> function vhod() { if(браузер==InternetExplorer)document.location.href="страница_под_IE.htm"; if(браузер==NetscapeNavigator)document.location.href="страница_под_NN.htm"; document.location.href="страница_под_все_остальные_браузеры.htm"; } </script> <A HREF="#" onClick="vhod()">Вход</a>Так у вас появится еще одна страница под баннеры и счетчики.
Ответ прислал Andrej R. Sirvutis
Насколько я знаю, нажатие кнопки "Назад/Back", в Эксплорере например, равносильно нажатию на ссылку javascript:history.back()
Попробуйте обыграть этот переход. Или используйте onUnload(), но тогда следует учитывать, что сработает в любом случае, даже при переходе по другой ссылке с текущей страницы.
Вопрос:
Как сделать, чтобы страница открывалась не с заданными width и height, а в полное окно?
-----------------------------------------------------------------------------------
Ответ:
Есть следующий скрипт: 001 = window.open("file:///c:/s/sb_bb001.htm","001","left=0, top=0, width=730, height=480, scrollbars=yes, resizeable=yes");
Ответ прислал Александр Цегельников
Вместо значений напиши: для width=<script>screen.width</script>,для height=<script>screen.height</script>. Должно работать как лошадь!:)
Вопрос:
Использовать разные картинки для разных разрешений. Узнать ширину экрана:
-----------------------------------------------------------------------------------
Ответ:
<script> x=screen.width; //здесь вообще-то надо вычислять ширину окна - // минус ширина scrollbar, т.к. окно может быть не полностью // развернуто... if (x > 750) document.write('<img src="1024.gif width="'+x+'">'); //хотя это не есть рулез растягивать или сжимать картинку... else document.write('<img src="800.gif width="'+x+'">'); </script>две картинки потому что растягивать 750 px до 1000 или сжимать 1000 до 640 - тоже не красиво. да и вообще сжимать/растягивать - некрасиво
Вопрос:
Есть скрипт, с помощью которого делать pop-up. Т.е. юзер закрыл окно браузера, после чего появляется новое заданное окно. А можно ли задать время, после которого должно открыться второе окно. Можно ли открывать несколько pop-up через разное время?
-----------------------------------------------------------------------------------
Ответ:
Ответ прислал Rustem Samatov
setTimeout(popup(),200); //выполнить функцию popup(); с задержкой в 200 милисекунд. т.е по unLoad=setTimeout(.... и все рулит :) но это очень плохой тон
Вопрос:
Какой нужен скрипт чтоб тот узнавал расширение экрана и потом в зависимости этих значений передавал определенные значения в параметры размера фреймов?
-----------------------------------------------------------------------------------
Ответ:
Используйте этот скрипт. <script language="JavaScript"> <!-- if (self.screen) { width = screen.width height = screen.height } else if (self.java) { var jkit = java.awt.Toolkit.getDefaultToolkit(); var scrsize = jkit.getScreenSize(); width = scrsize.width; height = scrsize.height; }else{ width = height = 'x' } if (width == 640) { document.write('<FRAMESET cols=20%,80%><FRAME src="menu.htm"> <FRAME name=display src="firstpage.htm"></FRAMESET> '); } else if (width == 800) { document.write('<FRAMESET cols=50%,50%><FRAME src="menu.htm"> <FRAME name=display src="firstpage.htm"></FRAMESET>'); } else if (width == 1024) { document.write('<FRAMESET cols=10%,90%><FRAME src="menu.htm"> <FRAME name=display src="firstpage.htm"></FRAMESET> '); } else if (width == 1280) { document.write('<FRAMESET cols=30%,70%><FRAME src="menu.htm"> <FRAME name=display src="firstpage.htm"></FRAMESET> '); } else { document.write('<FRAMESET cols=40%,60%><FRAME src="menu.htm"> <FRAME name=display src="firstpage.htm"></FRAMESET> '); } //--> </script>
Вопрос:
Нужен скрипт( желательно с пояснениями) для подсчёта цен
-----------------------------------------------------------------------------------
Ответ:
Создаете форму с выпадающими меню <form name="choisecomp" style="padding:0; margin:0; border:0"> <select name="MB" onChange="javascript:_calculate()"> <option value="0" selected>none</option> <option value="100">MB Gygabyte PII ($100)</option> <option value="200">MB Gygabyte PIII ($200)</option> </select><BR> <select name="Processor" onChange="......... ......</select><BR> <select name="RAM" onChange="......... ......</select><BR> ............................ <input type="text" name="summarn"> </form> и функцию _calculate() которая и будет считать. function _calculate() { var comp = new Array("MB","Processor","RAM",.........); var summa = 0; for (i=0; i<comp.lenght; i++) { if (document.choisecomp.comp[i].selected) { summa = summa + document.choisecomp.comp[i].value; } } document.choisecomp.summarn.value = summa; }
Вопрос:
Как зделать так чтобы "BOTTOM" сидел только внизу несмотря на размеры окна под "BOTTOM" я имею виду вот например такой текст :
-----------------------------------------------------------------------------------
Ответ:
Могу предложить вариант на JavaScript, если подходит пользуйся %) ! вписываешь его между <head> и </head>
<style> #divBottom{position:absolute; font-family:arial,helvetica; height:20; width:100; font-size:12pt; font-weight:bold} </style> <script language="JavaScript1.2"> var gright=220 //отступы справа и снизу var gbottom=40 var n = (document.layers) ? 1:0; var ie = (document.all) ? 1:0; function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style') this.moveIt=b_moveIt; } function b_moveIt(x,y){ this.x=x; this.y=y this.css.left=this.x this.css.top=this.y } var pageWidth,pageHeight function Init(){ oTest=new makeObj('divBottom') pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; checkIt() onresize=resized if(ie) window.onscroll=checkIt; } function checkIt(){ if(ie) oTest.moveIt(document.body.scrollLeft +pageWidth-gright, document.body.scrollTop+pageHeight-gbottom) else if(n){ oTest.moveIt(window.pageXOffset+pageWidth-gright, window.pageYOffset+pageHeight-gbottom) setTimeout('checkIt()',20) } } function resized(){ pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; if(ie) checkIt() } onload=Init; if(n || ie) document.write('<div id="divBottom">Так кто там сайт сделал?</div>') </script>после этого должен head закрыться, вроде все!
Вопрос:
А как задать порядок загрузки картинок, а то получается что баннеры поисковиков лезут вперёд менюшных моих?
-----------------------------------------------------------------------------------
Ответ:
Используйте скрипт Preload (код ниже). Он загрузит картинки при вызове, а затем, при запросе картинок, их покажет, а баннеры будут грузиться в обычном порядке.
<head><script language="JavaScript"><!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; iНадеюсь, понятно. Если не сработает, то попробуйте поставить этот скрипт на той странице, откуда осуществляется переход на страницу с баннерами.</script> </HEAD> <BODY onLoad="MM_preloadImages('pic1.gif','pic2.jpg')"> ... <body>
Вопрос:
Как можно сделать, чтоб наводишь на какой-нибудь рисунок например на чела стоящего на голове и чтоб он начинал крутиться.
-----------------------------------------------------------------------------------
Ответ:
Самое простое - использовать анимированную картину (anim.gif) и статичную с первым кадром анимированной (stat.gif).
Пусть изображение описано как <img src="stat.gif" onmouseover="JustDoIt(this,'anim.gif')" onmouseout="JustDoIt(this,'stat.gif')">
а функция выглядит:
function JustDoIt(obj,src) { obj.src=src; }
Но это без пре-лоадинга, т.е. при наведении на картинку будет запрос к анимированной на сервере, что затормозит работу и смажет впечатление.
Пре-лоадинг осуществляется след. кодом, кот. вставлется перед <body>:
<script> var cash=0; if(document.images) { var ImgList=new Array(); ImgList[0]=new Image(); ImgList[0].src="stat.gif"; ImgList[1]=new Image(); ImgList[1].src="anim.gif"; cash=1; } </script>Проверка на наличие document.images отсекает случаи использования старых браузеров, кот. не поддерживают объект Images (IE3 например)
Тогда наша функция будет выглядеть след. образом:
function JustDoIt(obj,src,x) { if(cash==1) obj.src=ImgList[x].src; else obj.src=src; }а описание картинки измениться на
<img src="stat.gif" onmouseover="JustDoIt(this,'anim.gif',1)" onmouseout="JustDoIt(this,'stat.gif',0)">
Вопрос:
Как с помощью JavaScript "заставить" открываться окно во весь экран, независимо от разрешения?
-----------------------------------------------------------------------------------
Ответ:
Значит, система простая
<script language="JavaScript">window.moveTo(0,0);
window.resizeTo(screen.availWidth,screen.availHeight)
</script>
И всё! Вставиш себе это где-то в страничке
Вопрос:
Как при помощи JavaScript можно закэшировать рисунок?
-----------------------------------------------------------------------------------
Ответ:
Если я правильно понял задачу. Что-то типа
if(document.images) {
var ImgList=new Array();
ImgList[0]=new Image();
ImgList[0].src="stat.gif";
ImgList[1]=new Image();
ImgList[1].src="anim.gif";
}
а потом обращаться не по имени нужной картинки, а присвоение делать как
obj.src=ImgList[x].src;
Вопрос:
Как из Java-апплета изменять текст на содержащей его страничке? Может как-нибудь с использованием JavaScript или VBScript? Место на странице где должен меняться текст известно, но заранее ниезвестно на что его менять?
-----------------------------------------------------------------------------------
Ответ:
Ответ от Andrei.
Написать на странице в том месте, где будет вставляться текст, следующее:
<script language="javascript" src="myscript.js"></script>
Создать файл myscript.js и записать в него нужный текст, который потом можно будет менять:
document.write("Текст");
Можно создать несколько function с разными текстами, а затем по сценарию вызывать разные из них с ye;ysvb текстами
Вопрос:
При наведении курсора картинка 1.gif меняется на картинку 2.gif Щелчек мышки на картинке (1.gif или 2.gif) переход по гиперссылке на страницу
-----------------------------------------------------------------------------------
Ответ:
Вообще говоря, можно сделать немного по другому. При наведении на 1.gif картинка меняется на 2.gif А затем, при щелчке мыши, срабатывает гиперссылка. При уходе мыши с рисунка, изображение восстанавливается (этого можно и не делать, если не требуется).
<HTML><HEAD> <script language="JavaScript"> <!-- function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v3.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } //--> </script> </HEAD> <BODY onLoad="MM_preloadImages('1.gif','2.gif')"> <P ALIGN="CENTER"> <img name="Image1" alt="Text" border="0" src="1.gif" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','2.gif',1)"> </P></BODY></HTML>Ответ от Shico.
Вот наипростейшая конструкция без предзагрузок и всего прочего. Работает очень даже хорошо, только рисунки делай поменьше весом.
<a href="xlam.htm"><img src="xlam1.gif" WIDTH="120" HEIGHT="24" alt="XLAM" border="0" onMouseover="this.src='xlam2.gif' " onMouseout="this.src='xlam1.gif'"></a>
Везде все работает одинаково и никаких дополнительных функций.
Вопрос:
Нужен скрипт для "убиения" фрейма и последствий его закрытия.
-----------------------------------------------------------------------------------
Ответ:
Смысл такой:
Есть страница, содержимое которой я поменять не в силах (ее код ниже). Она загружает в окно страницу моего сайта http://mysite.ru . При закрытие окна или загрузки другой ссылки поверх фрейма (_top) выскакивает новое окно с рекламой. Вот как бы избавиться от него?
Ответ от Andrej R. Sirvutis.
<script> if (parent.frames[0]){ top.location.href="/click?http://mysite.ru"; } </script>Этот скрипт "убьет" чужой фрейм и откроет в этом окне Ваш сайт. Правда окно с рекламой может все равно появиться, т.к. в вызывающем файле прописан скрипт на открытие нового окна при выгрузке. Без его изменения это может не получиться.
Ответ 2 Если тебе нужно убить фрейм, то вот он скриптик:
<script language="JavaScript" type="text/javascript"> setTimeout ("changePage()", 3000); function changePage() { if (self.parent.frames.length != 0) self.parent.location=document.location; } </script>Да кстати, код от Gordon McComb.
Вопрос:
У меня есть сайт. Сайт создан с фреймами. Что мне делать если на одну из станиц зашли без фрейма? Есть ли какой JavaScript который перебрасывает на главную страницу с этой страницей?
-----------------------------------------------------------------------------------
Ответ:
Предлагаю очень простой скрипт, который надо разместить в разделе HEAD или, во всяком случае, до раздела BODY. Допустим, у вас два одинаковых горизонтальных фрейма. В верхний загружается файл 1.htm (какое-нибудь меню), а в нижний - 2.htm. Разместите в начале файла 2.htm такой скрипт:
<script> if (top.frames.length==0) { document.write(" "<frame name='q1' src='#'>"+ "<frame name='q2' src='#'>"+ "</frameset>") top.frames[0].location.href='1.htm' top.frames[1].location.href='2.htm' } </script>Первым делом проверяется, есть ли в самом начале фреймы. Если уже есть, то загружается содержимое текущего файла (2.htm). Если изначально фреймов нет, то они тут же рисуются. А через мгновение указывается, какие файлы в них загружаются.
В качестве индексов массива frames[] можно указывать явные имена фреймов frames['q1'], frames['q2']. Ну, а для первого фрейма можно сразу вписать источник <frame name='q1' src='1.htm'>, не играет роли.
Ответ от Andrej R. Sirvutis.
<script language="JavaScript"> if(self.parent.frames.length==0) self.parent.location="index_main.htm"; </script>Если текущая страница загружена не во фрейм, то вызывается страница index_main.htm. Разместите между <head> и </head>.
Ответ от Victor.
Этот скрипт при открытии страницы на которой он размещен на весь экран выдаст текст (при загрузки этой страницы во фрейме этот текст конечно же будет отсутствовать):
Лучше смотреть с управляющим фреймом
<SCRIPT LANGUAGE="JavaScript"><!-- if (self.parent.frames.length == 0) document.writeln("Лучше смотреть с <A HREF=\\"index.htm\\">управлющим фреймом</A>"); // --> </SCRIPT>
Вопрос:
Сайт с фреймами, допустим 3 фрейма. Как сделать чтобы при нажатии на линк менялось содержание не одного фрейма, а 2-3?
-----------------------------------------------------------------------------------
Ответ:
Написать java скрипт.
на кнопках:
onClick="javascript:_change(_ваш номер ссылки_)" //т.е. на первой кнопке - 1, на второй - 2, ... //при нажатии на 1-ю кнопку все определенные //в скрипте фреймы сменят хреф на linkX_1.htm, //при нажатии на вторую - на linkX_2.htm и т.д. function _change(numLink) { linkArray1 = new Array ("link1_1.htm","link1_2.htm",....); linkArray2 = new Array ("link2_1.htm","link2_2.htm",....); //и так далее по количеству фреймов, где link1_1 - первая уже // измененная ссылка в 1-м фрейме. name_of_frame1.location=eval('http://mysite.com/' + linkArray1[numLink]); name_of_frame2.location=eval('http://mysite.com/' + linkArray2[numLink]); //опять же по количеству изменяемых фреймов }
Ответ от Andrej R. Sirvutis.
Используйте обработку события onClick.
<a target="frame2" href="page2.htm" onclick="parent.frame3.location.href='page3.htm'">Link</a>
Эта конструкция позволит загрузить во фрейм "frame2" страницу "page2.htm" и одновременно во фрейм "frame3" страницу "page3.htm".
Created/Updated: 25.05.2018