Firefox un JavaScript lapas

Par to, ka Firefox ir iespējām bagāts pārlūks, esmu rakstījis jau neskaitāmas reizes. Ik pa laikam arī esmu dalījies ar dažiem trikiem un viltībām. Bet tāpat par visu uzrakstīt ir diezgan grūti, vēl jo vairāk tāpēc, ka pats daudzas lietas neesmu izkodis.

Šodien uzdūros vienai lapai, kur kāds klauns vienuviet bija salicis veselu kaudzi ar dažādiem skriptiem, kas ierobežo lietotāja brīvību. Tas gan attiecas uz tiem lietotājiem, kuriem ir ieslēgts JavaScript atbalsts. Bet kuram gan no mūsdienu lietotājiem nav JavaScript atbalsta vai tas ir atslēgts? Jā, pirms dažiem gadiem ar ēzelīti bija diezgan bīstami jāties pa internetu ar ieslēgtu ActiveX + JavaScript, jo bija visai reālas iespējas atrauties pēc pilnas programmas, bet šobrīd jau modernie pārlūki daudz maz ciešami tiek galā ar šo drazu.

Viena visai populāra lieta, ko pielieto dažādi klauni, ir ar JavaScript palīdzību atslēgt iespēju nospiest peles labo pogu. Rezultātā nabaga lietotājs netiks pie izvēlnes un nevarēs vai nu saglabāt kaut ko vai arī izvēlēties citas iespējas. Jebkurš lietpratējs zinās kā apiet šo problēmu, bet iesācējam tā varētu būt problēma.

Mozilla bāzētajos pārlūkos šo problēmu var atrisināt ar vienu rindiņu “user.js” failā – user_pref("dom.event.contextmenu.enabled", false);. Vai arī nomainīt “dom.event.contextmenu.enabled” vērtību iekš about:config uz “false” un lieta darīta. Nevienā lapā vairs nevarēs nobloķēt labās pogas izvēlni.

Lai atrastu šādu lapu, kurā kāds klauns ir ievietojis šo nelietīgo skriptu, nav īpaši tālu jābrien, jo kaut vai fotki.lv (testam izvēlējos pirmo bildi, kas gadījās) lapā pie detalizētā skata ir ielikts izvēlnes bloķēšanas skripts. Laikam bija domāts liegt iespēju saglabāt šo bildi, bet veltīgi. 🙂

Tā ir ļoti izplatīta problēma un risinājumu atrast ir ļoti vienkārši, bet ko darīt ar specifiskākām vēlmēm? Kā mēs zinām, tad Mozillas bāzētos produktus pārsvarā lieto lietpratēji, kam patīk pieslīpēt savu pārlūku un piedzīt to zem sevis. Mozillas lapā ir atrodams neliels iespēju apraksts lietotājiem, kas vēlas ierobežot dažādu skriptu darbību savā pārlūkā. Šī informācija ir domāta cilvēkiem, kas ir spējīgi paši domāt un saprot, ko dara.

Lūk esmu nonācis arī līdz šīs dienas varonim. Netaisos apspriest to cik labi vai slikti ir izveidota šī lapa kā arī kapēc tieši tā un ne savādāk, bet gan izmantošu to kā dzīvu piemēru. Tā kā līdzīgas lapas ir pieejamas uz katra soļa, tad piedāvāšu risinājumu, kas varbūt nedaudz palīdzēs tikt galā ar šādu gudrinieku lapām, kurās nez kāpēc ir izdomājuši ierobežot lietotāju, liedzot izmantot vienu vai otru funkciju.

Ja izvēlni uz peles labo pogu dabūt mums nesagādā nekādas problēmas, tad te ir ielikts vēl viens ļaunais skripts, kas liedz iespēju iezīmēt tekstu. Gribētos jau nolamāties ar desmitstāvīgajiem, bet, lai nu paliek. Palasot augstāk minēto dokumentāciju radās sportiska interese un vēlme notestēt tur dotos padomus un atrast veidu kā apiet “līkajās” lapās saliktos aizliegumus.

Skripts, kas man traucēja dzīvot bija šis te.

//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}

Sākumā gribēju liegt iespēju vērsties pie funkcijas document.onmousedown, bet man kaut kā nekas neizdevās, tad nekas cits neatlika kā nogriezt iespēju darboties ar window.sidebar.

Rezultātā sanāca sekojoša rindiņa, kas neļaus skriptam izmantot window.sidebar funkciju, bet mēs varēsim iezīmēt tekstu.
user_pref("capability.policy.default.Window.sidebar", "noAccess");

Varbūt kādam ir labākas idejas par to kā piegriezt skābekli šādām funkcijām? Teorētiski nogriežot pieeju window.sidebar mēs pakļaujam sevi nelielam riskam, ka kāds specifisks skripts kādā lapā varētu arī nestrādāt…

26 komentāri par “Firefox un JavaScript lapas

  1. basket.eclub.lv

    Piekritu autoram ka tie skriptini ir riebigi.
    pats savulaik gribeju ko iezimet bet nevareju.
    un ne jau aiz laabs dzives bijuj spiests tos tur ievietot. rakstot un publicejot savca saita info, konstateju ka citi vienkarsi nem un zog bildes un tekstsu. tas jau nekas nebutu, ja vini panem kaut ko, bet ja neieliek atsauci, nu tad piedodiet…

    Atbildēt
  2. varonis

    P.S.
    tie kam loti vajag un tie kas zina ko grib tacu dabu – tapat ka autors.
    ar tiem skriptiem es meginaju savus darbus aizsargat no "fiksajiem kopetajiem" vins panem manu bildi un ieliek kaut kur pie sevis. un vel es tiku konstatejis, ka ganriz vards- varda "lielie" portali no manis nem info.
    nevelos lai kads doam ka es te baigi taisnojos, bet man ir savi argumenti kapec ta!

    Atbildēt
  3. sogjis

    tie kas izmanto Proxomitron var paši uztaisīt filtru. es uztaisīju filtru kurš "document.onmousedown=disableselect" nomaina uz "</script>" un visu var tagad iezīmēt kā vajag

    Atbildēt
  4. Johnie

    Man liekas jums visiem nav citu ko darit ka mocit savus browserus gluzi ka lieliem berniem smilsu kaste:)
    Un vel – nevajag braukt standarta lietotajiem ka vini neizmanti visas browsera iespejas vai nezina kadus nikus stikus.
    Tas butu tapat ka jums pajautat – ka palielinat jaudu masinai ar FSI iesprici?

    Atbildēt
  5. ATI

    xe, xe CLX tūlīt atskries uz šejieni tavu pieminēto "līko" saitu autori un sāksies "diršanās", redz viens jau atradās 🙂

    Atbildēt
  6. Spameris

    nedaudz nepareizi pirmīt pateicu par to filtru
    Lai uztaisītu filtru, kas ļauj iezīmēt tekstu darām tā:
    1) palaižam Proxomitron
    2) spiežam uz Web page, tad New
    3) izvēlamies filtra nosaukumu, ievadam šādas vērtības:
    Bounds match:<script*</script>
    Byte limit: 9000
    Matčing expression: *document.onmousedown=disableselect*
    4) spiežam ok, ielikam ķeksi pie filtra, spiežam ok

    Atbildēt
  7. Delfins

    1. dazreiz tiesi context menu vajag dabuut stradat, un neradit defaulto – to bish,- custom contextmenu.
    2. besii tie scriptkiddiji kas nodiseiblo contextmenu delj "mana lapa ir kruta"

    Atbildēt
  8. Madars

    Nu es JavaScript parasti turu atsleegtu, iesleedzu tikai specifiskaam lapaam, nedaudz neerti ir paarsleegt, bet to var mieriigi paciest.

    Atbildēt
  9. Cancel

    Nezinu kam viss šis murgs. Piemēram dzīvojot ar Operu neesmu sastapis nevienu lapu kurā būtu aizliegts skatīt sourci vai kaut ko saglabāt. Opera neļauj sevi apmānīt ar tik "lētiem" trikiem pat ar ieslēgtu Javascript.

    Atbildēt
  10. c_m

    Redz, bet ne jau tikai zem *times, *eclub u.c. meklējami šādi murgi. Vienreiz bij nopirkta īslaicīga pieeja vienai foto aģentūras datubāzei, un tur jamie ar cenšas savas fotkas aizsargāt, iespējams ar to pašu javascript, bet grūti teikt, tākā toreiz nebija laika iedziļināties tādos sīkumos, neapskatījos. Bet nu tur džeki bij pastrādājuši godam, tik pēc kāda laika atkodu apkārtceļu kā iespējams dabūt vajadzīgo fotku. Nu jau vairs grūti atcerēties, kas un kā tur bija tīri ierobežots, bet nācas pacīnīties, kamēr tiku līdz fotku saglabāšanas.

    Atbildēt
  11. Didulis

    Nolēmu ievērtēt dienas varoņa lapas source. Apskatoties to, es gandrīz nokritu no krēsla aiz smiekliem, jo ~60% no source bija skripti. Nepievērsu uzmanību, kas tur par skriptiem, tik piefiksēji, ka lielākā daļa ir no dynamicscripts. Taču pēc virsraksta sapratu, ka nevēlos lasīt lapas saturu. Kā rezultātā nesanāca patestēt attiecīgos skriptus darbībā. Mani tracina lapas, kur ir liegta iezīmēšanas iespēja, jo es sekoju līdzi tekstam to iezīmējot.

    Atbildēt
  12. Dreef

    Nu nedomāju, ka tas minētais scripts ir tapis pēc FF iznākšanas. Manuprāt tas scripts ir ļoti vecs un arī FF viņš varētu ignorēt, bet redz tas tomēr uzķerās. Un vēl es nedomāju, ka ir daudz vairāk FF lietotāji par Opera lietotājiem ;-).

    Atbildēt
  13. NM

    piekriitu autoram Cancel koments 18
    Opera Version 7.54 viss notiek bez kautkaadas saspringshanas un anaalaa muskulja treneeshanas.
    "dienas varonis" kaa arii fotki.lv straadaaja tieshi taa kaa es gribu, un man nenaacaas – "Kā mēs zinām, tad Mozillas bāzētos produktus pārsvarā lieto lietpratēji, kam patīk pieslīpēt savu pārlūku un piedzīt to zem sevis". Laikam neesmu lietprateejs. Piedodiet.

    NM
    P.S. Laikam jau beerniem muuzjiiigi patiik speeleeties smishkastee.

    Atbildēt

Ieraksti komentāru

Tava e-pasta adrese netiks publicēta.