Ga naar inhoud

Javascript in Greasemonkey (Firefox)


Faziri

Aanbevolen berichten

Het moet niet automatisch zijn. En het moet ook niet specifiek voor dat spel werken.

Om eerlijk te zijn snap ik niet echt dat het moeilijk kan zijn een scriptje te maken dat gewoon een stuk tekst invoegt achter de cursor (er vanuitgaande dat de cursor nog in dat tekstvak staat, dus dat ik nog nergens anders heb geklikt na het typen).

Even afkijken van een ander scriptje:

if (char == alt+s) + <br>+<br>+"handtekening"

't Is maar een idioot probeersel, natuurlijk...

Simpel gezegd: ik druk op alt+s en het script schrijft een stuk tekst daar waar mijn cursor staat.

Link naar reactie
Delen op andere sites

  • Reacties 21
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Nou, het is wel moeilijk.

het is niet mogelijk om op te roepen waar de cursor op dat moment is. Want daarvoor heb je de ID value van het tekstvak nodig. Dan kun je zeggen:

inhoudtekstvak(ID) + "<br><br>handtekening"

Om deze aan een sneltoets te hangen heb je ook weer een listener(script) nodig. Een scriptje dat ziet welke toetsen jij allemaal indrukt. En zodra alt+s ingedrukt wordt dat hij dan een handler(script) uitvoert. Dit is niet zomaar 1, 2, 3 gemaakt. En denk ik dat rond de 60 regels code of MEER zal komen te liggen (wilde gok)

Makkelijker om te maken is een scriptje dat inlaad op de pagina www.spel.nl/sendmessage.php (bijvoorbeeld).

Dat dan de ID value van het tekstvak uitleest. En hij vanzelf al in het tekstvak zet:

<br><br>handetekening.

Dat is veel handiger, en makkelijker om te programmeren.

Link naar reactie
Delen op andere sites

Ik heb een account aangemaakt op dit spel. Maar ik zie wanneer je een bericht naar iemand wilt versturen, dat er een knopje inzit voor je handtekening toe te voegen.

Of is het dat je het op een andere pagina wilt gebruiken? Zou je dan even het linkje ofzo willen doorgeven op welke pagina het script actief moet zijn. Want dit moet namelijk zo ingesteld worden in het script.

Link naar reactie
Delen op andere sites

Tja, dat knopje werkt eigenlijk alleen voor Premium Accounts... :biggrin2:

Maar ik zie in dat script eigenlijk geen problemen aangezien er mensen zijn die toch gewoon elke keer hun handtekening typen... Een script zou alleen de tijd voor het typen verminderen... :angel:

Link naar reactie
Delen op andere sites

Klopt. Maar het moet dus alleen op die pagina zichtbaar zijn? Dus wanneer je een berichtje typt naar iemand.

Dit is namelijk nodig, want Greasemonkey zet het script op andere pagina's dan gelijk op non-actief. Alleen op de pagina van het berichtje sturen staat het script dan op Actief.

In ieder geval ga ik er binnenkort even naar kijken of ik er iets van kan brouwen, en anders probeer ik wel een beetje te googlen en het te maken ;)

Groeten,

leroy

Link naar reactie
Delen op andere sites

  • 2 maanden later...

Ok, ik heb het gedeeltelijk zelf opgelost nu:

function sign() {
   var signature = "handtekening";
   var msgFrame = document.getElementById("textarea");
   msgFrame.value = (msgFrame.value + signature);
   msgFrame.write(msgFrame.value);
}
sign();

Maar het probleem is dat deze functie moet toegewezen worden aan deze knop in de PHP broncode:

<input name="Send" id="Send" value="Send" onclick="return Validator('sendform', 1, 1)" accesskey="s" type="submit">

Ik weet dat dat wel zal zijn op te lossen met document.innerHTML.replace maar daar weet ik het niet meer... Wat moet ik vervangen door wat? De knop moet zijn oorspronkelijke functie behouden, maar vóór het verzenden de functie uitvoeren.

Link naar reactie
Delen op andere sites

  • 1 maand later...

wat je precies wilt doen is niet echt mogelijk. Je kunt een POST statement niet zomaar aanpassen VOORDAT hij wordt verzonden.

Je zou echt in het tekstvak automatisch je handtekening moeten laten zetten.

Het is niet mogelijk om later je handtekening nog eens toe te voegen. Want wanneer je op de knop drukt, wordt de inhoud van het tekstveld al verzonden en kun je er niets meer aan toevoegen.

Wat je ongeveer zou moeten doen als JS (greasemonkey) is ongeveer dit: (geen functies gebruiken in ieder geval)

var signature = "handtekening";

var msgFrame = document.getElementById("textarea");

msgFrame.value = msgFrame.value + signature;

Zoals ik ook al eerder zei: Het moet automatisch toegevoegd worden wanneer de pagina wordt geladen.

Het zou zelfs kunnen zijn dat het niet werkt. Dan zou je de 3e regel moeten vervangen door:

document.getElementById("textarea").value = msgFrame.value + signature;

Hoop dat het je lukt. Zoals je denk ik wilt, dat het niet meer in het tekstvak staat maar automatisch wordt meegestuurd lukt NIET. Dat is onmogelijk omdat je dan PHP code moet gaan aanpassen, waar je geen toegang tot hebt.

Groeten,

Leroy

Link naar reactie
Delen op andere sites

Gast
Dit topic is nu gesloten voor nieuwe reacties.

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.