PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1 2 
Kuidas kontrollida kas JS lubatud
Postitaja: Repentinus 2007-12-16 23:26:57
Kuidas kontrollida PHP-ga kas JS on lubatud?
RE: Kuidas kontrollida kas JS lubatud
Postitaja: duke 2007-12-16 23:40:14
Otse seda ei saagi teha, sest PHP käib serveris, Javascript käib brauseris ja brauser üldiselt ei teavita serverit sellest, et missuguseid skripte ta jooksutada oskab.

Ümber-nurga lahendusi on küll olemas. Puhtalt kliendipoolne lahendus on näiteks

<noscript>
Sorry, selle saidi kasutamiseks pead Javascripti lubama
</noscript>
<script type="text/javascript">
window.location.href="http://minusait/javascriptenabled.html";
</script>


Kuulikindel see kindlasti ei ole.

Viimati muudetud: 16-12-2007 23:40:35
Muutja: duke
Põhjus:

RE: Kuidas kontrollida kas JS lubatud
Postitaja: Repentinus 2007-12-16 23:44:50
Oleks just vaja, et server teaks kas JS lubatud või mitte, sellest peaks sõltuma mida lehel kuvatakse.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: peehaapee 2007-12-17 08:46:34
Server ei saa kahjuks kuidagi teada, kas kliendi masinas on javascript või mitte :)) Esimene serveri kontakt kliendiga on kliendi brauseri get http päring, milles pole minu arust kusagil viidet javascripti esinemise kohta... Nii, et eelnevalt välja pakutud variant on ilmselt kasutatuim detectimise meetod.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: hmz 2007-12-17 09:19:32
Kuna küpsised on enamasti lubatud, on veel võimalus selline, et PHP-ga sätid nt $_COOKIE['javascript']="off", seejärel javascripti abil püüad küpsises selle "on" peale muuta ja järgmisel päringul juba saad PHP-ga uuesti tsekata, kas küpsise väärtus on muutunud või mitte.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: duke 2007-12-17 09:43:11
TSITEERITUD:
Kuna küpsised on enamasti lubatud, on veel võimalus selline, et PHP-ga sätid nt $_COOKIE['javascript']="off", seejärel javascripti abil püüad küpsises selle "on" peale muuta ja järgmisel päringul juba saad PHP-ga uuesti tsekata, kas küpsise väärtus on muutunud või mitte.

Teine sarnane lahendus on peale sessiooni alustamist sessiooni kirjutada, et javascript = off. Ja peale esimese lehe laadimist saadad ühe XHR päringu teele, mille peale server siis javascript = on teeb ja edasi saad siis selle järgi vaadata.

Aga igaks juhuks kordan üle, ükski neist lahendustest ei ole kuulikindel :)
RE: Kuidas kontrollida kas JS lubatud
Postitaja: duke 2007-12-17 09:47:09
Ja veel üks variant on selline, et saadad kliendile mõlemad variandid, nii skriptivaba kui skriptiga, aga see skriptiga osa on ühe div-i sees, millel display väärtus on none

Ning lehe laadimisel teed javascriptis display='block'

:)
RE: Kuidas kontrollida kas JS lubatud
Postitaja: zeratul 2007-12-17 16:10:48
TSITEERITUD:
Ja veel üks variant on selline, et saadad kliendile mõlemad variandid, nii skriptivaba kui skriptiga, aga see skriptiga osa on ühe div-i sees, millel display väärtus on none

Ning lehe laadimisel teed javascriptis display='block'

:)


Siin tekib nüüd suurte koormuste puhul küsimus, et kas on mõtet 0.01% paranoiliste kasutajate nimel kõiki andmemahte topelt edasi-tagasi liigutada.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: . 2007-12-17 18:10:02
Serveripoolselt oleks veel võimalus tuvastada tehes JavaScriptiga XML päringu.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: Repentinus 2007-12-17 19:50:41
Et nagu siis selline võimalus ka, et "Pärast mind tulgu või veeuputus"? Et polekski nagu minu, kui arendaja probleem, kas ta saab JS kasutada või mitte.

Ma siiski arvan, et see on eeskätt minu probleem. Aitäh kõigile, kes on vastanud, ise jäin nagu selle XML päringu peale mõtlema, soovitusi on selle kohta?
RE: Kuidas kontrollida kas JS lubatud
Postitaja: rtfm 2007-12-17 20:21:29
TSITEERITUD:
Aitäh kõigile, kes on vastanud, ise jäin nagu selle XML päringu peale mõtlema, soovitusi on selle kohta?


jah, tee ära.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: K. 2007-12-17 22:03:46
Nagu kunagi öeldud, tee siis veebileht IE 3-7'ga nähtavaks, samuti opera, ff, safari jms. Äkki mõni kasutab veel. JS peaks ikkagi sees olema ja veebiarendaja võiks ikka arvestada, et see on sees.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: zeratul 2007-12-18 08:18:39
Korralikult tehtud ja valideeruv kood toimib väga ilusti nii ff, opera, safari kui ka teiste vähemlevinud brauseritega. IE7 peab vahel harva veidike häkkima, aga muidu suht ok. Aga IE 6 ja vanemad - vahest söövad küll topeltaja ära, et normaalselt näitama saada. Tuleks ometi see aeg, kus praegu enamlevinud brauseri IE6 kasutajate arv muutub nii olematuks, et saaks neid lihtsalt ignoreerida - hoiaks suure osa tööajast kokku.

Siiski, tänasel päeval võin julgelt öelda, et JS mittekasutajate arv nii marginaalne, et nende pärast tõepoolest ei ole mõtet võimelda, kui just arenduse tellija spetsjom selle nalja kinni maksab. Finantspoolelt vaadates - kas tellijana oleksid nõus maksma projekti eest ~25% rohkem, et teha 0.01% külastajatest oma veeb nähtavaks.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: Ajulääbar 2007-12-18 09:29:39
No ma tegin tõesti nii, et otsin lehel kõik ankrud üles ja javaskriptiga püüan kinni kliki event-i ja lasen javascriptil endal lehte edasi saata. Hetkel leidis praktilist lahendust ainult selleks, et json-i või xml-i pärida ja sellega lehte korrigeerida, aga hea fantaasia korral saab nii ka lehti vahetada.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: rtfm 2007-12-18 09:54:53
TSITEERITUD:
Korralikult tehtud ja valideeruv kood toimib väga ilusti nii ff, opera, safari kui ka teiste vähemlevinud brauseritega. Aga IE 6 ja vanemad - vahest söövad küll topeltaja ära, et normaalselt näitama saada.


blaah, ise räägid valideeruvast koodist ja siis kuidas sul kõigiga ei tööta ja pead vaeva nägema. Mina kirjutan htmli pimedalt kõikide jaoks korraga, kui pead meeles, et peamine erinevus mis arendajatele muresid tekitab on paddingute ja marginite erinev tõlgendamine, siis saad oma muret juba praegu ignoreerida. Lihtalt sa ei määra elemendile korraga laiust ja marginit korraga, tekib küll natuke rohkem elemente, aga 99% juhtudel see toimib.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: zeratul 2007-12-18 11:22:58
TSITEERITUD:


blaah, ise räägid valideeruvast koodist ja siis kuidas sul kõigiga ei tööta ja pead vaeva nägema. Mina kirjutan htmli pimedalt kõikide jaoks korraga, kui pead meeles, et peamine erinevus mis arendajatele muresid tekitab on paddingute ja marginite erinev tõlgendamine, siis saad oma muret juba praegu ignoreerida. Lihtalt sa ei määra elemendile korraga laiust ja marginit korraga, tekib küll natuke rohkem elemente, aga 99% juhtudel see toimib.


Ma ei tea, mis doctype'i sa kasutad, aga vähemalt XHTML stricti puhul pole mul küll kunagi mõõtmete, paddingute ja marginite TÕLGENDAMISE probleemi olnud erinevate brauseritega. Teatud tingimustel IE näitab left ja right marginid topelt - see muide üsna hästi tuntud bug ja tõlgendamisega pole siin midagi pistmist. Õnneks ei esine seda väga tihti ning sellest pole eriti raske mööda hiilida.
Loe lähemalt siit: http://www.positioniseverything.net/explorer/doubled-margin.

Ning veel üks äärmiselt ebameeldiv IE bugi, mis tekib põhjendamatult ka 100% valideeruva ja korralikult kirjutatud koodiga:
http://www.positioniseverything.net/explorer/peekaboo.html

Eks selliseid näiteid on IE kohta veelgi ( http://www.positioniseverything.net/explorer.html ), aga need kaks eelmainitud on mul endal kõige tihemini olnud pinnuks silmas.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: rtfm 2007-12-18 13:05:40
TSITEERITUD:

Ma ei tea, mis doctype'i sa kasutad, aga vähemalt XHTML stricti puhul pole mul küll kunagi mõõtmete, paddingute ja marginite TÕLGENDAMISE probleemi olnud erinevate brauseritega.


ma kasutan transitionali, kuna strictiga läheksid kliendid päris hulluks ja ei suudaks valideeruvat htmli äbi adminniliideste genereerida. Ma ei mõtelnud eelmist posti kribades sinupoolt viidatud konkreetset bugi, sest teatud juhtudel marginit ei näidata topelt vaid mõni brauser arvestab margini kogu laiuse hulka ja mõni laiusele lisaks. Seda lihtsat erinevust arvestades ja vältides ei teki ka sellist bugi võimalust. Ma ei ole kunagi nendest bugfixidest jne asjadest aru saanud (mitte , et ma ei mõistaks mida ja kuidas nad midagi parandavad) ja neid ise kasutanud, sest sellise sitaga minuarvates ei pea eriti vaeva nägema kuna neid olukordi saab edukalt vältida.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: rtfm 2007-12-18 13:07:38
aga see muidugi offtopic meil siin juba, see display block lahendus on päris hea kasutamiseks, redirectimisvärgid ajavad mind alati närvi kuna keeravad back nupuga navigeerimise perse ja peab elueest klikkima , et jõuda tagasi üleeelmisele lehele milleks sageli on mingi otsimootori tulemuste lehekülg.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: MeiX 2007-12-18 13:13:34
IE ei toeta XHTMLi, ärge kasutage seda. Seda näeb iga päev näiteks päevalehe ja sl õhtulehe veebis, kuidas on tahtetud trendikas ja seksikas olla, xhtmli kasutada, ja siis külastajad peavad kannatama, sest lehe laadimisel renderduvad igasugu anomaaliad välja. IE renderdab xhtmli nagu vigast htmli. Oodake html 5.0 standard ära parem.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: rtfm 2007-12-18 13:18:20
TSITEERITUD:
IE ei toeta XHTMLi, ärge kasutage seda.


irw
RE: Kuidas kontrollida kas JS lubatud
Postitaja: MeiX 2007-12-18 13:35:03
Wiki:
Browser support for XHTML 1.0 remains incomplete even though it has been many years since the Recommendation status of XHTML 1.0. For example, Internet Explorer by Microsoft (MSIE) has had XML parsing capabilities since version 5.0 in 1999, but even in mid-2007, the current version (IE7) still does not support XHTML documents served as XML; it only renders them correctly when they are served as HTML and are authored in accordance with the HTML compatibility guidelines.

Võid ise järgi proovida, pane oma xhtml lehele korrektne header ja vaata mida IE teeb. Ja siis vaata mida teeb Firefox. IE parsib xhtmli ainult html parseriga, ehk ta näeb vigast süntaksit.
RE: Kuidas kontrollida kas JS lubatud
Postitaja: ajulääbar 2007-12-18 15:24:55
ja kuidas see kõik javascripti kontrolliga haakub?
RE: Kuidas kontrollida kas JS lubatud
Postitaja: Keegi_Teine 2007-12-18 15:29:12
tavaline teema arendus ehk siis lõpuks ei mäleta enam keegi, millest asi pihta hakkas

Viimati muudetud: 18-12-2007 15:29:35
Muutja: Keegi_Teine
Põhjus:

RE: Kuidas kontrollida kas JS lubatud
Postitaja: uudishimulik 2007-12-18 15:57:37
TSITEERITUD:
tavaline teema arendus ehk siis lõpuks ei mäleta enam keegi, millest asi pihta hakkas

EEEEHHH:)! Kui küsimuse pealkiri on hästi sõnastatud ja see figureerib pidevalt päises, järelikult on vaja silmavaadet laiendada üles ja alla, mitte vasakule ja paremale...
RE: Kuidas kontrollida kas JS lubatud
Postitaja: tre8 2007-12-18 16:15:19
Külastajate arv, kes JSi kasutada ei saa polegi nii marginaalne nagu osad siin väidavad. Eestis on üsna palju ettevõtteid, kes oma töötajatele need võimalused keelanud on. Näiteks valdav osa SEB (võimalik, et ka teiste pankade) arvutitest..

Leheküljed: 1 2 

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.092808008194