Äh.. Varmasti oon nähny tämmösen php-koodin jossakin, joka tunnistaa käyttäjän selaimen.. Nyt ei vaan millään meinaa löytyy mistään sitä.. Nyt kysyn siis täältä sitä. Olis tarkotus laittaa sen avulla ilmotus sivuilleni sillein, et ie:n käyttäjät vaan näkee sen, ongelmaa vähän sille selaimelle vielä uudistetuissa sivuissa..
Valmista koodia en ainakaa mä anna, mut vinkki:
<?php $selain=$_SERVER["HTTP_USER_AGENT"]; ?>
Tuosta on helppo jatkaa ;)
Juu, niitten ketkä on koodaillu vähän kauemmin.. Mä oon aika aloittelija vielä tässä, toi koodinpätkä ei meinaa sanoo mulle yhtään mitään :S
Käytellään sitä php.netin hakua: https://www.php.net/manual/en/reserved.
Lisäksi on olemassa toinen tapa näyttää sisältö vain IE:lle, huomattavasti helpompi tosin:
<!--[if IE]> <a href="http://getfirefox.com">Get Firefox</a> <![endif]-->
Eli noiden kommenttilohkojen väliin se HTML, joka näkyy vain IE:lle.
Miten php muka voi päästä käyttäjän selainta tutkimaan? Sehän suoritetaan palvelimella..
Selain lähettää palvelimelle tietoa sivua pyytäessään, josta palvelimella suoritettava koodi voi ottaa selaimesta selvää.
Matso kirjoitti:
Miten php muka voi päästä käyttäjän selainta tutkimaan? Sehän suoritetaan palvelimella..
Siten, että selain lähettää (jos lähettää) http-otsakkeessa sivunpyynnön yhteydessä hieman informaatiota itsestään (User Agent).
Äh, 18 s liian hidas :/
IE:n tapauksessahan pientä kikkaa käyttäen on mahdollista lukea surfaajan leikepöydän sisältökin. Kyseinen kikka onnistuu tekemällä pieni JavaScripti, joka POSTaa leikepöydän sisällön OnLoad tapahtumassa takaisin selaimelle. Eli periaatteessa kaikki mitä JavaScriptillä voi tehdä on tutkittavissa myös PHP:llä pientä kikkaa käyttäen.
Esimerkki ei muuten toimi firefoxsissa tai oopperassa, jos asetuksista ei ole muutettu leikepöydän käsittely ehtoja sallimaan sitä JavaScriptille. IE:ssä kyseinen on sallittua. Eihän kellekkään IE:n käyttäjälle tule pahoja mieleen, että olisi joskus salasanan kopioinut leikepöydälle "vain hetkeksi". :)
Hitto et on muuten hanurista. Mitähän IE:tä tehdessä ovat ajatelleet. Kuitenkin tuota voi jo käyttää jonkin luokan tietomurtokikkana.
Onkos muuten tietoa, onko tämä aivan oikea javascript-ominaisuus, vai Micro$oftin omia lisäyksiä (niin kuin ie:n omat "html-tägitkin")?
Ja koodi kaikessa yksinkertaisuudessaan.
<HEAD> <SCRIPT> // SaveToClibboard function S2CB() { window.clipboardData.setData('Text', event.srcElement.innerText); } function GCB() { alert(window.clipboardData.getData('Text')); } </SCRIPT> </HEAD> <BODY onload="GCB()"> <B ID="oSource" onClick="S2CB()">111</B><br> <B ID="oSource1" onClick="S2CB()">222</B><br> <B ID="oSource2" onClick="S2CB()">333</B><br> </BODY> </head>
Lebe80 kirjoitti:
Onkos muuten tietoa, onko tämä aivan oikea javascript-ominaisuus, vai Micro$oftin omia lisäyksiä (niin kuin ie:n omat "html-tägitkin")?
Ja koodi kaikessa yksinkertaisuudessaan.
Mitäs tuo sitten IE:llä tekee? Firefoxis ainaki tulostaa vaan lihavoituna nuo numerot O_o
Lebe80 esimerkissä on onload tapahtumaan laitettu tulemaan virhe ilmoitus sivua avatessa. Virhe ilmoituksessa pitäisi olla leikepöydän sisältö. IE:llä näin onkin, mutta firefox kieltäytyy suorittamasta koodin. Nuo luvut tuossa lopussa tulee kuten pitääkin boldattuna, mutta niitä klikkaamalla luvun pitäisi siirtyä leikepöydälle, mutta jälleen IE tekee työtäkäskettyä, niin työtysti luvun klikkauksen jälkeen on päivitettävä sivu, jotta varoitus viesti kertoo mitä leikepöydälle on tallennettu.
Onhan tuosta ominaisuudeta paljon hyötyä, mutta on se myös vaarallinen väärinkäytettynä, joten viisas päätös selaimen suunnittelulta estää se. Yleensä sivuilla leikepöytää tarvitaan vain tiedon siirtoon, mutta sen nyt voi tehdä myös itse ja automatisoinnissa voi käyttää keksejä korvaamaan leikepöydän tai jc:n muuttujia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.