download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Проблем с iframe и java script

Автор
Съобщение
anonymous
Пет, 15.06.07, 00:26
Здрасти на всички. Имам следния проблем... Помагам на един приятел в разработването на малък уеб сайт. Взехме решението на главната страница на сайта да има един <iframe> , а отстрани да има група от линкове и при избирането на съответен линк, съдържанието на файла да се зарежда в iframe-а (виж картинката).

Тоест презарежда се само ифрейма, а НЕ цялата страница. За целта “взаимствах” готов java script, който леко промених за конкретните нужди. Проблема е, че скрипта активира попъп блокера на IE. Съдържанието на ифрейма не се зарежда и линковете не работят. Изскача онази жълтата лента горе. Всеки който разбира поне малко знае как да се отърве от нея, но за обикновения интернет потребител е разочароващо. Човек може да реши, че на сайта няма нищо или все още не е довършен. Ето и използвания код:
<script language="javascript">
var displaymode=0
var iframecode='<iframe marginheight="0px" marginwidth="7px" frameborder="no" id="external" style="width:555px; height:680px;" src="if_cont.htm"></iframe>'
if (displaymode==0)
document.write(iframecode)
 
function jumpto(inputurl){
if (document.getElementById&&displaymode==0)
document.getElementById("external").src=inputurl
else if (document.all&&displaymode==0)
document.all.external.src=inputurl
else{
if (!window.win2||win2.closed)
win2=window.open(inputurl)
//else if win2 already exists
else{
win2.location=inputurl
win2.focus()
}
}
}
//-->
</script>

Това се използва в линковете за зареждане в ифрейма:
href="javascript:jumpto('gallery_01.htm') 

Може ли скрипта да се модифицира някак за да не активира блокера. Предупреждавам, бос съм с java script. Някакви идеи за решаване на проблема. Някак не ми се иска да прекроявам целия сайт наново. У-ф-ф-ф, тя работата стана много подробна, ама какво да правя.

phrozencrew
Пет, 15.06.07, 09:54
Ricetek, проблема ти идва от това, че стартираш скрипта от локалния ти компютър. Това е простотия на IE. Аз го зареждам и нямам никакъв проблем.Виж и ти:
http://instr.hit.bg/ie_problem/proba.html
Успех приятел!
insecteater
Пет, 15.06.07, 10:54
Защо задължително трябва да се минава през JavaScript?
Вместо това може да се ползва старият и изпитан атрибут "target" на "<а>" тага.

например:
<a href="http://www.abv.bg" target="content">abv</a>
<a href="http://www.dir.bg" target="content">dir</a>
<a href="http://www.download.bg" target="content">download</a>
<div style="width: 600px; height: 300px;">
<iframe width="100%" height="100%" src="http://www.google.com" name="content" scrolling="Yes" frameborder="no"></iframe>
</div>

Евентуално и за търсещите машини ще е по-удобно да индексират сайта. Иначе може изобщо да не проследят връзките.

редактиран от insecteater на 15.06.07 10:57
anonymous
Пет, 15.06.07, 11:15
Хе, хе. Аз си знаех кой ще ми отговори . Мерси момчета. insecteater ще пробвам и твоя подход. Ако ме устройва ще премина към него за най-сигурно. Знам, че търсещите машини имат известни проблеми с ифрейм. Мерси пак
anonymous
Пет, 15.06.07, 22:29
insecteater, ти си човека. Работи безотказно. Изчел съм доста нещо за html и css и се чудя защо тоя номер не съм го срещнал никъде. Научих нещо ново и доста полезно, супер. А пък тоя IE 6 е жива параноя по отношение на java script. Блокирал ми е други скриптове, добре че не бяха пряко свързани с навигацията. Обаче е най-масовият браузър за добро или лошо и трябва да се съобразяваме с това, ако искаме съдържанието на страницата да стигне до потребителите. Жив и здрав!
insecteater
Пет, 15.06.07, 23:48
Само една забележка. Имах някакви бегли съмнения, които се оказаха истина. Target атрибута е позволен в transitional DTD, но не и в strict. Ако не знаеш за какво става въпрос, го ползвай без проблем. И без това ползваш фреймове, така че не ми се вярва да използваш strict-а. Phrozencrew предполагам са му до болка познати тия неща гледах - по едно време се възмущаваше (и с основание) за подобни работи. Та за да не ти се кара и той и аз - съблюдавай съвременните стандарти и си валидирай кода - УСПЕХ

--------
Най елегантните решения са обикновено най-простите.

anonymous
Съб, 16.06.07, 12:34
Ох, знам ги декларациите. Просто сайта не е особено сериозен и затова не се напъвам с валидацията. css-a го докарвам до валидност, ама x/html-а все още ми е малко мазало. Понаучих форматирането с css, обаче все още ми трудно да премина към div-ове. А phrozencrew прави изключително качествени сайтове, това съм го забелязал.
phrozencrew
Нед, 24.06.07, 19:38
insecteater, преди малко ми трябваше твоята хитрина с таргет атрибута на тага а. Е братче нема такова решение по света. Може и да има обаче сума критерии зададох, а google така и не можа да ме насочи. И какво направих - върнах се в този приятен форум и с лека борба с търсачката (поне бях запомнил някои думи от темата) намерих твоя отговор.
Имаш ОЩЕ една бира от мен!
anonymous
Нед, 24.06.07, 22:53
Страшна хитрина е това с таргета. Доста нещо съм изчел за html и css, чудя се как това не съм го мяркал никъде. Отървах се от гадния java script, всичко се зарежда по мед и масло за секунда. Никога не съм вярвал, че това което исках може да се постигне без джавата. Respect за insecteater
insecteater
Нед, 24.06.07, 23:11
??????? Това си го има още от миналият век. И е стандарт при правенето на страници с фреймове. Но наистина е слабо засегнато из нет-а. Там незнайно защо наблягат на _blank _top и подобни.
Хубавото е, че роботите могат да проследят връзките.
Останка от добрият стар HTML

Колкото до тукашната търсачка - така си е, трябва да я сбориш, че да ти свърши работа.

anonymous
Пон, 25.06.07, 12:26
Много добре insecteater, често HTML е пренебрегван но ти напомняш, че е класика! Разбирасе трябва да се следват новите стандарти ама те лежат варху нещо - тоест и тук си има традиции. Погледнах някой от сайтовете на Phrozencrew много чисто писане! За естетиката всеки си е индивидуален, но мисля, че съвсем скоро ще е много ДОБЪР!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.