JS

15 отговора 371 прегледа
#1

JS

както вече и в кайро е известно - малко съм скаран със %субдж%.

е те тука е парчето което ми прай ръбове. тоесто то не прави - аз не знам как да го комбинирам. както всички се досещат първия онклик отваря прозорец с фиксиран размер, втория си е стандартната проверка на макромедия за браузър. като се кликне на линка обаче се изпълнява само първия онклик и той си зарежда урлто в хрефа. как да натъпча тая проверка в хрефа че да се изпълни тя вместо урл защото след като се изпълни проверката си се зареждат от нея съответните урлта? нямаше ли там някаква история <a href=javascript:dryn dryn>?

<a href="bg-inside.html" onclick="NewWindow(this.href,'bgwin','780','400','no');return false;MM_checkBrowser(5.0,1,2,5.0,1,2,2,'bg-inside.html','nobrowser.html');return document.MM_returnValue">&aacute;&uacute;&euml;&atilde;&agrave;&eth;&ntilde;&ecirc;&egrave;</a>


| и майка ти не е права...
| tldstudios.com
Отговор
в отговор на pro_O1 #2

Re: JS

Аве зех да пиша тука разни работи... ама май ми се губи идеята...
Начи... требе да се отвори първо bg-insade.html в нов прозорец в който да се изпълни MM_checkBrowser... правилно ли съм схванал? Че мноо ми се доспа от таз биричка на обед... :-)

Ми ако е така, сложи NewWindow в href-a на <а>-то, така:
<a href="javascript: NewWindow...">adsadsadsad</a>

А MM_checkBrowser го сложи на onLoad на bg-insade.html.
<body onLoad="MM_checkBrowser...">

Нещо такова де...


Ааа... поправка... Начи на NewWindow си му дай за първи параметър нормално URL вместо това this.href
-------------------------------------
Oh my God, they killed Kenny!
You bastards!

Редактирано от t.s. на

Отговор
в отговор на pro_O1 #3

Re: JS

Бах, нещо не можах да загрея какво искаш да стане... . Искаш в новия прозорец да ти се отвори различен документ според типа браузер ли? Я пак обясни, ама бавно ;)) Да се "изпълни проверка вместо урл" не ми говори нищо ;)

The#Project - нов брой с нов дизайн
Отговор
в отговор на t.s. #4

Re: JS

не ;-)

bg-inside.html дефакто не ми трябва - вместо него слагам да речем #, само че това не ми върши работа. искам след като първия скрипт отвори прозореца, в него да се изпълни проверката. не ми върши работа да я викам от външен файл onload. затова се чудя как да го накарам вместо bg-inside.html да изпълни проверката на браузъра.

| tldstudios.com
| thedezine.com
Отговор
в отговор на voyager #5

Re: JS

функция за отваряне на джам

var win= null;
function NewWindow(mypage,myname,w,h,scroll){
var winl = (screen.width-w)/2;
var wint = (screen.height-h)/2;
var settings ='height='+h+',';
settings +='width='+w+',';
settings +='top='+wint+',';
settings +='left='+winl+',';
settings +='scrollbars='+scroll+',';
settings +='resizable=no';
win=window.open(mypage,myname,settings);
if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}


функция за проверка на браузър

function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);
if (app.indexOf('Netscape') != -1) {
if (version >= NSvers) {if (NSpass>0) newURL=(NSpass==1)?URL:altURL;}
else {if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;}
} else if (app.indexOf('Microsoft') != -1) {
if (version >= IEvers || verStr.indexOf(IEvers) != -1)
{if (IEpass>0) newURL=(IEpass==1)?URL:altURL;}
else {if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;}
} else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
if (newURL) { window.location=unescape(newURL); document.MM_returnValue=false; }
}


викане

<a href="bg-inside.html" onclick="NewWindow(this.href,'bgwin','780','400','no');return false;MM_checkBrowser(5.0,1,2,5.0,1,2,2,'bg-inside.html','nobrowser.html');return document.MM_returnValue">български</a>

когато се кликне на линка, функцията за джама отваря джама с урл-то което е в a href и не изпълнява проверката. искам в тоя a href някак си да наместя проверката за браузър за да се изпълни ТЯ в отворения прозорец, а не да се отваря направо bg-inside.html защото от нея вече се викат съответните урл-та които ще се заредят ако браузъра е ок или не е.

не ми върши работа варианта да проверявам от bg-inside.html onload браузъра или да проверявам още onload на самата страница от която почва всичко.

| tldstudios.com
| thedezine.com
Отговор
в отговор на pro_O1 #6

Re: JS

Чини ми се, че говориш за някаква проверка в самия таг хреф... ми глей ся, ти по принцип можеш да набуташ почти всичко в един онклик. просто се прави
onclick="kvoto_si_iskash".
И няма нищо лошо щом искаш точно в момента на клика да проверяваш браузъра /*това ли искаш? не виждам голям смисъл, я обясни защо */, просто си предефинираш тая функция, която ти отваря прозореца, и набутваш проверката вътре преди да извикаш самия window.open()... И според проверката даваш на променливата mypage съответното урл...

The#Project - нов брой с нов дизайн
Отговор
в отговор на voyager #7

Re: JS

решението което колегата тн1 вкара е следното

<a href=# onclick="MM_checkBrowser(5.0,1,0,5.0,1,0,0,'',''); if (document.MM_returnValue==true) { NewWindow('bg-inside.html','bgwin','780','400','no'); } else { NewWindow('nobrowser.html','bgwin','780','400','no'); }">български</a>

всичко това чудесно, само дето по някаква причина каквото и да се прави се връща else url-то ;-( пробвах и с false горе и какви ли не въртели правих - не ще. а аз съм скаран с кодинга и не мога да открия някаква логическа грешка...

иначе искам точно това - да. щото имам сайт на 7 езика и искам да ми лоудне индекса с езиците без проверка, а после не ща на всеки език на индекса да му правя onload проверки... струва ми се, че така както искам ще е най-безбоезнено и бързо. все пак и сайта не е динамичен. а това дето ми говориш за предефиниране - не се наемам, че ще осера тотално всичко хехе

| tldstudios.com
| thedezine.com
Отговор
в отговор на pro_O1 #8

Re: JS

function MM_checkBrowser(NSvers,NSpass,NSnoPass,IEvers,IEpass,IEnoPass,OBpass,URL,altURL) { //v4.0
var newURL='', verStr=navigator.appVersion, app=navigator.appName, version = parseFloat(verStr);
if (app.indexOf('Netscape') != -1) {
if (version >= NSvers) {if (NSpass>0) newURL=(NSpass==1)?URL:altURL;}
else {if (NSnoPass>0) newURL=(NSnoPass==1)?URL:altURL;}
} else if (app.indexOf('Microsoft') != -1) {
if (version >= IEvers || verStr.indexOf(IEvers) != -1)
{if (IEpass>0) newURL=(IEpass==1)?URL:altURL;}
else {if (IEnoPass>0) newURL=(IEnoPass==1)?URL:altURL;}
} else if (OBpass>0) newURL=(OBpass==1)?URL:altURL;
if (newURL) { window.location=unescape(newURL);
return false; }
}

където викаш:
<a href=# onclick="MM_checkBrowser(5.0,1,0,5.0,1,0,0,'',''); if (!MMCheckboruser()) { NewWindow('bg- inside.html','bgwin','780','400','no'); } else { NewWindow('nobrowser.html','bgwin','780','400','no'); }">български</a>


Честно казано не можах да вникна дълбоко в идиотския код, който създава ДВ-то, но видях, че само на едно място поставя фалсе, така че би трябвало да стане. Ама пак не гарантирам - по добре да изнесеш целия тоя код в една функция:
function chekNeshtoTam(){
MM_checkBrowser(5.0,1,0,5.0,1,0,0,'',''); if (document.MM_returnValue==true) { NewWindow('bg- inside.html','bgwin','780','400','no'); } else { NewWindow('nobrowser.html','bgwin','780','400','no'); }
}

i dolu da dadesh samo onclick="checkNeshtoTam". Щото да ти кажа тоя синтаксис на един ред в жаваскрипт не ми вдъхва доверие. Както впрочем и функцията за чек на браузъра. Ако пак става същото, препоръчвам ти да лепнеш един alert() някъде във функцията за проверка, където би трябвало да върне истина и да видиш кво става...
А по принцип за груб чек дали работиш с ИЕ подобен браузър или НС, достатъчно е да използваш if(document.all). Освен ако дизайна ти наистина не е зависим от големи подробности в браузъра.

The#Project - нов брой с нов дизайн
Отговор
в отговор на pro_O1 #9

Re: JS

Сега ми хрумна нещо доста по-разбираемо и удобно за твоя случай:

там, където ти е линка:
<script>
if(IsNetscape()){ /*kydeto isNetscape e funkciq koqto shte vyrne true ako browsera e NS*/
document.write("<a href=NewWindow('nobrowser.html','bgwin','780','400','no')>български</a>");
}
else{
document.write("<a href=NewWindow('bg-inside.html','bgwin','780','400','no')>български</a>");
}
</script>
И пак ако става въпрос за груба проверка, вместо IsNetscape може да използваш !document.all

The#Project - нов брой с нов дизайн
Отговор
в отговор на pro_O1 #10

mai mai...

tova shte ti sbyrshi rabota
testvah go samo pod ie ama ba4ka
zabelegi funkciata za detec na browsera - tam moesh da si adnesh ili remov-nesh browseri spored saita ti.
ne e mnoo dobre napisano ama se pak ne sym i js guru:)

<script language="JavaScript">
<!----
function getBrowser()
{
this.ver=navigator.appVersion;
this.DOM=document.getElementById?1:0;
this.ie5=(this.ver.indexOf("MSIE 5")>-1&&this.DOM)?1:0;
this.ie6=(this.ver.indexOf("MSIE 6")>-1&&this.DOM)?1:0;
this.ie4=(document.all&&!this.DOM)?1:0;
this.ns5=(this.DOM&&parseInt(this.ver)>=5)?1:0;
this.ns4=(document.layers&&!this.DOM)?1:0;
this.DHTML=(this.ie5||this.ie4||this.ns4||this.ns5||ie6);
this.ns = this.ns4 || this.ns6;
this.ie = this.ie5 || this.ie4||this.ie6;
return this;
}

b = getBrowser();


function getOb()
{
if(b.ns4)
return "nn.html";
if(b.ie)
return "ie.html";
}

function go(page){
a = getOb();
opensaysme=window.open(page + a ,'preview','toolbar=no,scrollbars,resizable=yes,menubar=no,status=yes,directories=no,location=no,width=350,height=280')}

//---->
</script>


<a href="javascript:go('js_')">open me</a>

predpolagam 4e se doseshtash 4e triabva da imash 2 html-a
js_ ti e prefix-a
js_nn.html i js_ie.html a peigovete - gore mogesh da si gi smenish

ai sys zdrave

PS: kajete edno mersi i na HavyBomber-a za funkciikata za browsera - mnoo udobna:)

Отговор
в отговор на tatkoto #11

malka JS poprawka za tatkoto :)

Zdrasti tatkoto :)

Nachi imam slednite zabelejki otnosno twoia JavaScript.

Nachi twoia JS triabwa da byde slednia:

function getBrowser()
{
.... //syshtoto kakto predi ama bez return this nakraia
}

b = new getBrowser();

....

Nachi w twoia wariant this obekta w funciata sywpada s window obekta. Ako ne si uweren w towa - sloji edno alert(this==window) i she widish che she dade true. T.e. b = window. Towa e taka poneje kato wikash getBrowser() ti ne syzdawash now obekt chrez operatora 'new'. Ako ostawish taka neshtata i po-natatyk w fileto definirash promenliva:

ver = 10; (primerno)

togawa twoiata promenliwa b.ver shte byde overwrited ili drugo iache kazano shte zamine w kanala :). Towa e taka, zashtoto b.ver i window.ver sa edno i syshto neshto, zashtoto b i window sa edno i syshto neshto. Wsichki promenliwi, obekti i funcii, koito syzdawash s prostite im imena se syzdawat w window obekta t.e. pylnoto ime na wsiaka promenliwa e window.variable - naprimer:

a = 10;

e ekwiwalentno na: window.a = 10;


function m(){}

e ekwiwalentno na: function window.m(){}

Pozdrawi.

Btw si naprawil simpatichen page za familito :)

Отговор
в отговор на vALE #12

xe - mersi:)

kakto kazah ne sym guru:)
mersi za commenta za familito:)

Отговор
в отговор на voyager #13

Re: JS

по някаква причина това isnetscape при мен не работи, а !document.all май е само за експлорър? на мен ми трябва проста проверка за експлорър 5 и нетскейп 6. ;-/ иначе другия вариант работи ама отваря само нобраузър урлто ;-)))

| tldstudios.com
| thedezine.com
Отговор
в отговор на tatkoto #14

Re: mai mai...

mersi...

| tldstudios.com
| thedezine.com
Отговор
в отговор на voyager #15

kombinaciq

ot wsichki chudesa nakraq sednah i osobeno srychno si sglobih slednoto neshto:

<script language="JavaScript">
var vers=navigator.appVersion, version = parseFloat(vers);
if(version < 5){
document.write("<a href=javascript:NewWindow('nobrowser.html','bgwin','780','400','no')>български</a>");
}
else {
document.write("<a href=javascript:NewWindow('bg-inside.html','bgwin','780','400','no')>български</a>");
}
</script>

samo deto netscape otwarq podhodqshtiq page, a explorera uporito wryshta nobrowser ;-)))

| tldstudios.com
| thedezine.com
Отговор
в отговор на pro_O1 #16

Re: kombinaciq

мда... в експлорер обекта navigator е празен и не може да го изследваш за appVersion... . А функцията, дето постна таткото не ти ли върши работа?

The#Project - нов брой с нов дизайн
Отговор