Вопрос:
Можно ли , чтобы 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
 |
 |