JavaScript Seite auslesen

Du musst die Ausgabe von "output" (sprich: alles nach dem "GM_xmlhttpRequest(...);") auch innerhalb der Verarbeitungsfunktion des Requests machen. Ansonsten läuft das Ganze halt parallel zum Request und somit ist "output" zu dem Zeitpunkt noch nicht gefüllt...
 
Sorry, ich hatte den edit nicht gesehen.

Danke nochmal für die Hilfe. Ich habe jetzt folgenden Code:

Code:
// ==UserScript==
// @name           Hospitals
// @namespace      kcaS | Sack
// @description    Beschreibung
// @include        *erepublik.com*
// ==/UserScript==


GM_xmlhttpRequest({
  method: "GET",
  url: "https://link.de/tool/hospitals.php",
  onload: function(response) {

var text = response.responseText;
var output = '';
var exp = new RegExp(/(Region:\s+<b>.*?<\/b>)\s+(Battle:\s+<b>.*?<\/b>)<br>\s+.*?(Hospital\s+@\s+<b>.*?<\/b>)/gi);

while(helper= exp.exec(text)) {
output += helper[1]+' '+helper[2]+' '+helper[3]+'<br>';
}
var LinkDiv = document.createElement('div');
LinkDiv.id = 'LinkDiv';
LinkDiv.innerHTML = output;
document.getElementsById('shouts_component').appendChild(LinkDiv);

  }
});


Aber ich bekomm keine ausgabe. Leider verstehe ich nicht warum.
Ich sage ja, der soll hinter das Element mit der ID shouts_component den div Linkdiv schreiben.
Aber der erscheint nicht im HTML quellcode? (also auch nicht leer^^)
(ich möchte es an dieses Div anhängen, das genauso im Quelltext steht:
<div style="display: block;" id="shouts_component"></div>
 
wenn du es sowieso schon als GreaseMonkey-Script baust und somit Zugriff auf den DOM hast, warum nimmst du keine CSS-Selektoren?
 
wenn du es sowieso schon als GreaseMonkey-Script baust und somit Zugriff auf den DOM hast, warum nimmst du keine CSS-Selektoren?
Weil ich auf beide Seiten keinen Zugriff habe um was drauf zu ändern. Wie soll ich das dann sonst machen?
document.getElementsById('shouts_component').appendChild(LinkDiv);

das s ist zuviel :)

Danke. :)
Der Div-Container wird nun auch erstellt. Er ist allerdings leer -.-
Das kann dann doch nur daran liegen, dass was am regulären Ausdruck falsch ist, oder? Ich wollt den schon auf Rubular.com ausprobieren, aber da wird mir immer gesagt, ich solle die Slashs escapen, aber ich weiß nicht wie^^
 
optimal wäre natürlich mal die originalseite, damit man den regulären ausdruck anpassen kann ;)
hab dich btw mal im icq addiert
 
Ich wollt den schon auf Rubular.com ausprobieren, aber da wird mir immer gesagt, ich solle die Slashs escapen, aber ich weiß nicht wie^^

Bei Rubular musst du die Slashes ganz am Anfang und ganz am Ende vom Regex entfernen (die stehen ja neben dem Textfeld oben)
Ansonsten musst du Slashes mit einem Backslash escapen (so wie bei <\/b>)
 
optimal wäre natürlich mal die originalseite, damit man den regulären ausdruck anpassen kann ;)
hab dich btw mal im icq addiert

Ich hab dir den Link mal per ICQ gesendet.

Bei Rubular musst du die Slashes ganz am Anfang und ganz am Ende vom Regex entfernen (die stehen ja neben dem Textfeld oben)
Ansonsten musst du Slashes mit einem Backslash escapen (so wie bei <\/b>)

Danke. Ich wusste zwar, das der erste und der letzte Slash weg muss, aber im Ausdruck war auch ein Slash nicht escaped, und ich wusste halt nicht wie.
Ich bekomm aber trotzdem "no matches"


Edit:
Es funktioniert!
War nur ein kleiner fehler im regulären Ausdruck. Thrown- out hat mich gerettet :)
 
Zuletzt bearbeitet: