Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Code voor toets in Javascript

Pagina: 1
Acties:

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 20-11 21:25
Ik ben vrij nieuw in het programmeren. Dus ik neem aan dat dit voor de Twiekers onder ons geen moeilijke vraag zal zijn.

Al langer wil ik m'n workflow optimaliseren. En tevens om een muisarm te voorkomen, wil ik alleen met het toetsenbord werken zonder enig gebruik van de muis op webpagina's. Dus zojuist de extensie Toetsenbordnavigatie voor Chrome geïnstalleerd.

Werkt prima en al. :) Maar dit wil ik nog verder optimaliseren. De extensies maakt gebruik maken van de letters. Ik vind dit onpraktisch, daar je immers twee handen moet gebruiken om alle letters te bedienen.
Om die reden wil ik overschakelen naar numpad als input-methode. Dan hoef je immers alleen gebruik te mkaen van je rechterhand om input in te voeren. De letters heb ik veranderd naar de cijfers van de numpad.

De code voor de toetsen wordt opgeslagen in de navigate.js:

[code=javascript]
const scrollValue = 30;
const KEY = {
    Num1: 49, NUM2: 50, NUM3: 51, NUM4: 52, NUM5: 53, NUM6: 54, NUM7: 55, NUM8: 56, NUM9: 57,
    ENTER: 13,
    LINKS: 37, UP: 38, rechts: 39, DOWN: 40,
    CONTROL: 17,
    G: 71,
    J: 74, K: 75, H: 72, L: 76, ESC: 27,
    Z: 90, X: 88,
    PUNTKOMMA: 186,
    COMMA: 188, PERIODE: 190, SLASH: 191,
};[/code=javascript]

Ik neem aan dat dit Javascript is, zonder hex waarden. Even gezocht op sleutelwaarde 188 die correspondeert met de komma. Dit blijkt het geval te zijn op www.webonweboff.com/tips/js/event_key_codes.aspx (zie 188, is er een komma te).

Het invoerveld daaronder geeft mij aan dat de waarde voor [del]-knop op numpad 110 zou moeten zijn. Dus ik heb het naar 110 veranderd en dit opgeslagen. Nadat Chrome opnieuw gestart is, zodat de extensie opnieuw geladen is, kon ik hem echter nog steeds alleen met de komma activeren :? De del knop sorteert geen effect. In de rest van de code staat er geen andere 188 als invoer gedeclareerd.

Waar zit ik verkeerd? :F

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 20-11 21:25
Nevermind, ik vond het al.

Oorzaak lag in een dependencie die nog gekoppeld zat.

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 20-11 21:25
Andere uitdaging:

Ik moet telkens een komma aantikken, om de extensie te activeren. Hoe kan ik de extensie permament aan laten, zonder dat ik hem telkens moet activeren bij het laden van een nieuwe pagina/tab? Ik zat te denken het voortaan else te vervangen door wat in If staat.

Een stukje van de code gepakt:

[code=javascript] case KEY.COMMA:
if (!hitahint_enable || isDisabledSite())
return;
e.preventDefault();
mode = hitahint;
hitahint.init();
break;[/code=javascript]

Iemand enig idee hoe ik dit het beste kan aanpakken? In de rest van de code kon ik niet iets vinden wat hierop betrekking heeft.

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 20:48
Kan je niet gewoon wat in die case zit in een functie gooien en die bij de onload aanroepen? (Ik weet niet wat de scope is van de methodes en de variabelen dus daar zul je misschien nog op moeten leten.)

JavaScript:
1
2
3
4
5
6
7
window.addEventListener('onload', function()
{
if (!hitahint_enable || isDisabledSite())
         return;
      mode = hitahint;
      hitahint.init();
});


Ik weet ook niet of een extensie van Chrome wel een onload event krijgt om eerlijk te zijn, misschien krijgt die zijn eigen 'pagina is geladen' event.

Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF


Verwijderd

Ik gebruik in firefox de optie 'search for text when i start typing'. Het equivalent van een permanente ctrl+f. Voldoet die optie niet aan jouw wensen? Daarmee kan je zo goed als zonder muis browsen en links volgen. Op GoT gebruik ik niet vaak meer de muis.

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 20-11 21:25
ZpAz schreef op vrijdag 01 maart 2013 @ 10:08:
Kan je niet gewoon wat in die case zit in een functie gooien en die bij de onload aanroepen? (Ik weet niet wat de scope is van de methodes en de variabelen dus daar zul je misschien nog op moeten leten.)

JavaScript:
1
2
3
4
5
6
7
window.addEventListener('onload', function()
{
if (!hitahint_enable || isDisabledSite())
         return;
      mode = hitahint;
      hitahint.init();
});


Ik weet ook niet of een extensie van Chrome wel een onload event krijgt om eerlijk te zijn, misschien krijgt die zijn eigen 'pagina is geladen' event.
Bedankt voor je suggestie. Ik zal het aan de code toevoegen. Wellicht dat-ie het wel slikt.
Verwijderd schreef op vrijdag 01 maart 2013 @ 10:29:
Ik gebruik in firefox de optie 'search for text when i start typing'. Het equivalent van een permanente ctrl+f. Voldoet die optie niet aan jouw wensen? Daarmee kan je zo goed als zonder muis browsen en links volgen. Op GoT gebruik ik niet vaak meer de muis.
Je komt dan niet bij de hyperlinks die achter een afbeelding verborgen zijn.

Verwijderd

Jawel. Iets typen wat vlak voor de afbeelding is, dan tab. Maar dat is niet erg praktisch.

  • Hatsieflatsie
  • Registratie: Oktober 2011
  • Laatst online: 20-11 21:25
ZpAz schreef op vrijdag 01 maart 2013 @ 10:08:
Kan je niet gewoon wat in die case zit in een functie gooien en die bij de onload aanroepen? (Ik weet niet wat de scope is van de methodes en de variabelen dus daar zul je misschien nog op moeten leten.)

JavaScript:
1
2
3
4
5
6
7
window.addEventListener('onload', function()
{
if (!hitahint_enable || isDisabledSite())
         return;
      mode = hitahint;
      hitahint.init();
});


Ik weet ook niet of een extensie van Chrome wel een onload event krijgt om eerlijk te zijn, misschien krijgt die zijn eigen 'pagina is geladen' event.
Je tip heeft niet gewerkt. Ik heb gekeken of de variabele van hitahint een global scope is, dat lijkt het geval. Dus ik zou niet weten waar de knel hem dan zit.

Om dit topic overzichtelijk te houden, heb ik de code copygepasta op Pastebin: http://pastebin.com/MKp6XW3T

Wat ik ook geprobeerd heb, zijn de false booleans op true te zetten:

[code=javascript]var connection = chrome.extension.connect();
connection.onMessage.addListener(function(info, con){
search_enable = info.search=="false"?false:true;
hitahint_enable = info.hitahint=="false"?false:true;
other_enable = info.other=="false"?false:true;
usechars = info.hitahintkeys || "asdfjkl";
sites = (info.sites||"").split(",").slice(0,-1);
});[/code=javascript]

Vreemd genoeg bracht dat geen verandering in het gedrag van de extensie. Zijn er nog eventuele openingen in de code waar ik ernaar kan kijken?

[ Voor 118% gewijzigd door Hatsieflatsie op 01-03-2013 18:22 ]

Pagina: 1