[JS] Keypress Event in bookmarklet?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Ik probeer een heleboel POPmail in mijn YahooMail account te importeren. De eerste hap ging in een keer goed, maar daarna haalt ie per Check Mail steeds een enkele tot enkele tientallen mails binnen.

Zou google het druk hebben? :')

Check Mail = shift + m
AKA M

Is het mogelijk om zo'n keypress event met een stukje javascript te maken? Gewoon plain and simple zodat het in een bookmarklet kan.

Proof of bookmarklet concept:
code:
1
javascript:(function(){alert('boohoo')})()


Poging tot event werkt niet:
code:
1
javascript:(function(){var o=document.createEvent('TextEvent');o.initTextEvent('TextInput',true,true,null,'M');textarea.dispatchEvent(o)})()

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • noes
  • Registratie: Augustus 2006
  • Niet online

noes

gek op benzine.

Shift+m is niet hetzelfde als M. Probeer maar eens met caps-lock op aan alleen de M in te toetsen ipv shift+m. Ik denk dat het daar mis gaat.. wat je kan doen is even een test html maken waarin je de code gaat testen, gewoon eventlisteners opzetten die naar m, shift+m etc. luisteren, dan zie je meteen welke triggert bij welk event.

K54/R1250RS | K48/K1600GT | E61/550i


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Natuurlijk gaat dat niet lukken; er is een reden waarom shortcuts altijd een CTRL+<key>, CTRL+ALT+<key> e.d. zijn. Moet er niet aan denken dat elke keer dat ik M type ik naar mijn mail ga; hoe zie je dat voor je als je bijvoorbeeld een post zit te doen op GoT?
Daarbij draaien bookmarklets alleen op 't moment dat je ze aanklikt; voor de zaken die jij wil doen moet je eens gaan kijken naar het bouwen van een plugin/addon/extension/whatever voor je favo browser.

[ Voor 28% gewijzigd door RobIII op 28-02-2011 13:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Okee, shift+m is niet het zelfde als M, bedankt voor de tip. :)

Maar Robllll heeft het verkeerd begrepen: Met shift+m ga ik niet naar mijn mail. Binnen YahooMail check je nieuwe mail als je shift+m intiept.

Bovendien kan je bookmarklets prima gebruiken voor dat soort dingen. Ik vind het fijn dat je meedenkt, maar je maakt zeker zelf nooit bookmarklets? Copy-paste dit maar eens naar je adresbalk:
code:
1
javascript:(function(){setInterval("alert('Wut? En ik maar verkondigen dat dit niet mogelijk is!')",2000);})()

Do not underestimate the bookmarklet. :)

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sando schreef op maandag 28 februari 2011 @ 15:46:
Bovendien kan je bookmarklets prima gebruiken voor dat soort dingen. Ik vind het fijn dat je meedenkt, maar je maakt zeker zelf nooit bookmarklets? Copy-paste dit maar eens naar je adresbalk:
code:
1
javascript:(function(){setInterval("alert('Wut? En ik maar verkondigen dat dit niet mogelijk is!')",2000);})()

Do not underestimate the bookmarklet. :)
Ik weet niet welke browser jij gebruikt maar bij mij doet 't niets hoor :? Ik moet 'm eerst aanklikken en dan pas krijg ik om de 2 seconden (as intended) een alert... (Fx en Chrome)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
het lijkt me niet dat je een shift+m kunt nadoen; gevalletje veiligheidslek als dat wel zou kunnen.

Volgens mij moet je op zoek naar de onderliggende actie van shift+m. Kwestie van met je favoriete debugger uitzoeken welke actie er achter shift+m zit....

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
RobIII schreef op maandag 28 februari 2011 @ 15:53:
[...]

Ik weet niet welke browser jij gebruikt maar bij mij doet 't niets hoor :? Ik moet 'm eerst aanklikken en dan pas krijg ik om de 2 seconden (as intended) een alert... (Fx en Chrome)
Oeh, Opera. Daarin kan je scripts gewoon uitvoeren vanuit de adresbalk. En je kan het bookmarken, maar da's niet noodzakelijk. Ik dacht dat dat overal zo was. :z Dus bij mij is 'een direct in de adresbalk uitvoerbaar script' synoniem voor bookmarklet.

Maar dat geeft niet, zelfs al moet ik iets klikken om te beginnen, dan is het nog steeds *O* omdat ik gewoon die mail binnen wil halen zonder steeds shift+m te toetsen. Ik neem aan overal, maar in ieder geval in Opera, kan je namelijk gewoon de bookmarklet door laten draaien terwijl je naar andere tabs gaat en business as usual doet zolang je de tab (of de browser) maar niet sluit.
KabouterSuper schreef op maandag 28 februari 2011 @ 15:54:
het lijkt me niet dat je een shift+m kunt nadoen; gevalletje veiligheidslek als dat wel zou kunnen.

Volgens mij moet je op zoek naar de onderliggende actie van shift+m. Kwestie van met je favoriete debugger uitzoeken welke actie er achter shift+m zit....
Meh, jammer. Dan wordt het al wat minder simpel.

Na het nieuws over de verdwijnende gmail mails wilde ik even simpel een backup maken in de cloud van de concurrent. Bookmarklets maken valt bij mij in de categorie simpel, maar debuggen niet.

Waarschijnlijk omdat ik geen favoriete debugger heb voor javascript. Ik heb nog nooit en debugger gebruikt voor javascript. Nou moet ik waarschijnlijk een halve dag onderzoek investeren om uit te zoeken hoe ik dat aanpak. Nou, misschien van het weekend hoor. :P

[ Voor 4% gewijzigd door Sando op 28-02-2011 17:47 ]

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • Klaasvaak
  • Registratie: Maart 2010
  • Laatst online: 25-09 21:53
Die createEvent functie wordt overal maar deels gesupport. Opera heeft geen support voor KeyboardEvent en TextEvent.

Als je firefox bij de hand hebt zou je deze kunnen proberen:
JavaScript:
1
javascript:(function(evt){function dispatch(){document.dispatchEvent(evt)}; evt.initKeyEvent('keypress', true, true, null, false, false, true, false, 0, 0x4D); window.setInterval(dispatch, 1000)}(document.createEvent('KeyboardEvent')));void%200

Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Die doet het bij mij niet?
Handig die kleurtjes, wist ik niet. :)

Ik kwam deze pagina tegen en die gebruik ik nu om te testen (helemaal onderaan javascript):
http://www.quirksmode.org/js/keys.html

Ik heb je functie omgebouwd omdat ie er volgens mij anders uit moet zien:
JavaScript:
1
javascript:(function(){function ev(){var evObj=document.createEvent('KeyEvents');evObj.initKeyEvent('keyup',true,true,window,false,false,false,false,13,0x4D);document.dispatchEvent(evObj);};setInterval(ev,2000);})()

Werkt ook niet. :-(

Vervolgens maar even overdreven gaan doen:
JavaScript:
1
javascript:(function(){function key(){jQuery.event.trigger({type:'keypress',which:c.charCodeAt(0)});}var c='M',s=document.createElement('script');s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js');document.getElementsByTagName('head')[0].appendChild(s);setInterval(key,2000);})()

Werkt ook niet. :-( :(

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
RobIII schreef op maandag 28 februari 2011 @ 13:28:
voor de zaken die jij wil doen moet je eens gaan kijken naar het bouwen van een plugin/addon/extension/whatever voor je favo browser.
:Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Sando
  • Registratie: Januari 2007
  • Niet online

Sando

Sandoichi

Topicstarter
Categorie hoogwerkerbouwpakket bestellen om het andere eind van een waslijn vast te houden :P

Dan kan ik beter op zoek gaan naar een auto-browser, auto-keypresser oid. Wel onelegant, maar een oplossing voor tijdens het slapen.

Ik kan het niet uitstaan dat ik het niet in een frickin' bookmarklet krijg en daar zit juist de uitdaging. Weet je hoe handig dat zou zijn voor veel meer?

🇪🇺 Buy from EU (GoT)


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sando schreef op dinsdag 01 maart 2011 @ 00:31:
Categorie hoogwerkerbouwpakket bestellen om het andere eind van een waslijn vast te houden :P
Categorie juiste tool voor de job ;) There's a difference :P
En zo heel moeilijk is een plusin/extension/addon knutselen toch ook weer niet? Hoewel ik niet precies weet hoe dat zit met Opera, maar er zijn zat "copy/paste" projecttemplates om mee aan de slag te gaan, een kale addon/plugin/extension zou je dan ook in een paar minuten aan de praat moeten hebben lijkt me :?

[ Voor 4% gewijzigd door RobIII op 01-03-2011 01:55 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Klaasvaak
  • Registratie: Maart 2010
  • Laatst online: 25-09 21:53
Het probleem is hoe de checkMail functie aan te roepen, dat zelfde probleem hou je indien je een plugin/extensie zou maken.

Je zou alle 3 de key events eens moeten proberen in FF.
JavaScript:
1
2
3
4
5
//(type, bubbles, cancelable, view, ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode)

evt.initKeyEvent('keydown', true, true, null, false, false, true, false, 77, 77)
evt.initKeyEvent('keyup', true, true, null, false, false, true, false, 77, 77)
evt.initKeyEvent('keypress', true, true, null, false, false, true, false, 77, 77)
Pagina: 1