PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript - weiß jemand Rat?


Werbung

Will.Hunting
28-06-2010, 15:43
Und zwar möchte ich mit einem Greasemonkey (https://addons.mozilla.org/de/firefox/addon/748/)-Skript, ähnlich dem folgenden Beispielskript (http://www.tuxradar.com/content/greasemonkey-beginners), ...


// ==UserScript==
// @name Deincentivize
// @namespace http://www.example.com/~juliet/
// @description Replace "incentivize" on corporate homepage
// @include http://www.example.net/corporatehome
textNodes = document.evaluate(
"//text()",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);
var searchRE = new RegExp('incentivize','gi');
var replace = 'pling';
for (var i=0;i<textNodes.snapshotLength;i++) {
var node = textNodes.snapshotItem(i);
node.data = node.data.replace(searchRE, replace);
}
// ==/UserScript==


... einen bestimmten Text auf einer Seite jeweils ersetzen. Allerdings nicht wie im Beispiel durch einen anderen Text, sondern es soll ein <a href=...>-Tag eingefügt werden, um einen anklickbaren Link zu erhalten. Wenn ich allerdings der Variablen replace z. B. '<a href="http://www.bliblablub.de">Beispiellink</a>' zuweise, dann wird daraus am Ende kein Link, sondern es wird genau SO, wie es da steht, als Text angezeigt. Sonderzeichen mit Backslash zu escapen, haben ich auch schon probiert, aber ohne Erfolg.

Hat jemand eine Idee, wie ich das hinbekommen könnte?

Schon mal im Voraus vielen Dank! :)

energy
30-06-2010, 21:52
Sorry, bin nicht fit in dem Thema.



// sucht alle a Elemente, mit dem Attribut href
myNodes1 = document.evaluate(
"//a[@href]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);

// Query durchsucht alle a Elemente, die das Attribut href besitzen und liefert deren Textinhalt
myNodes2 = document.evaluate(
"//a[@href]/text()",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);


Du musst praktisch nur den Baum aufbrechen und deine Werte hinzufügen. Momentan greifst du im Beispiel nur auf den Textinhalt des Elements zu. Deswegen wird daraus kein Link erzeugt. Also erst das Element finden und dann mit innerHTML (http://www.tizag.com/javascriptT/javascript-innerHTML.php) den Inhalt setzen.


ODER SO. :newwer:



:schleich:


edit:
Vielleicht spart folgendes Zeit: "//a[@href='http://www.ioff.de']/text()"

Naja.

Hengsbach
01-07-2010, 02:22
/watch?v=WEbOWvONOhU

:clap:

energy
01-07-2010, 22:27
Hengsbach, du elender Spammer... ! http://foolstown.com/sm/old.gif

Nein.

Das Video war mal ein Highlight des Tages. :D :D :D