Blogggáttin löguð með Greasemonkey
Ég verð oft ansi pirraður á þeim fítus blogggáttarinnar að setja allar síður í umslag. M.ö.o. þegar þú smellir lá link á blogggáttinni endar þú ekki á síðunni sjálfri heldur síðu frá blogggáttinni sem birtir hina síðuna í ramma (iframe). Þegar þú smellir á vísanir á þeirri síðu breytist slóðin í browsernum ekki þar sem þú ert í raun enn á síðu blogggáttarinnar. Þegar þú smellir svo á link efst á síðunni til að losna úr umslaginu endar þú á fyrstu síðunni en ekki þeirri sem þú ert kominn á.
Markús, sá sem forritar blogggáttina, lét mig vita að þeir ætluðu að breyta þessu en það kæmi ekki út fyrr síðar í þessum mánuði eða í ágúst.*
Þannig að ég ákvað að prófa að fikta með Greasemonkey.
Ég skrifaði semsagt örlítið script sem virkar þannig að það áframsendir mann strax á síðuna sem ætlunin var að skoða. Þetta eru bara nokkrar línur sem ég setti saman útfrá leiðbeiningum á diveintogreasemonkey.
Það þarf ekkert að útskýra scriptið, það er það einfalt.
// ==UserScript==
// @name Blogggáttinn
// @namespace http://www.orvitinn.com
// @description Lagar vísanir frá blogggáttinnni
// @include http://blogg.gattin.net/blog.php*
// ==/UserScript==
function xpath(query) {
return document.evaluate(query, document, null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
}
var allir_rammar = xpath('//iframe');
var rammi = allir_rammar.snapshotItem(0);
if (rammi)
{
window.location.href = rammi.src;
}
Til að installa scriptinu þurfið þið að hafa Greasemonkey uppsett, smellið svo á þennan link til að sækja javascript skrána. Þá poppar upp gluggi frá Greasemonkey, veljið install og þetta er komið.
Farið svo á blogggáttina og smellið á einhverja vísun og viti menn, þið endið á síðunni sjálfri.
Einn galli við þetta er að ekki dugar að gera "back" frá síðunni til að lenda aftur á blogggáttinni, því þú lendir aftur á wrapper síðunni frá þeim og ert því samstundis sendur aftur á síðuna sem þú varst að skoða. Þetta er svosem hægt að laga með því að skoða hvaðan fólk kemur (referer) og breyta hegðun eftir því hvort fólk kemur frá gáttinni eða síðunni sem er í rammanum. En ég nenni ekki að spá í því núna, það er auðvelt að hoppa aftur um tvær síður í firefox með því að ýta á litla þríhyrninginn hjá back takkanum.
Sama script er hægt að nota fyrir t.d. b2.is með því að breyta @include efst, bæta við línu því það mega vera margar @include línur: @include http://www.b2.is/?sida*
Greasemonkey er dálítið sniðugt dæmi.
*Þið þurfið semsagt ekkert að flýta ykkur að laga þetta mína vegna.
Eggert - 18/07/07 16:52 #
Mér þykir nú eiginlega hvorki svakalega fallegt né læsilegt að nota short-circuit evaluation fyrir flow control í hugbúnaði, þó svo það spari tvær línur... :)
Erlendur - 18/07/07 17:02 #
Klöppum fyrir þessu