Link nach Kriterien entfernen

airliner

Erfahrenes Mitglied
Wir müssen neuerdings mit Google Apps Sites arbeiten und müssen es ein wenig aufbohren. Unter anderem soll ein Link deaktiviert werden. An sich ja keine große Sache, wenn es denn bei einem bestimmten oder gleich allen handelt. Google ist dahingehend sehr hilfreich.

Das Problem ist jetzt allerdings: Ich muss quasi nur eine "Kategorie" an Links töten.

Beispiel: Das ist die Art Link, die deaktiviert werden soll.
HTML:
<a target="_blank" dir="ltr" href="https://docs.google.com/a/DOMAIN/viewer?a=v&amp;pid=sites&amp;srcid=dGpmYmdwcm9qZWt0LmRlfHF1YWxpdGFldHNtYW5hZ2VtZW50fGd4OjY3YTg4MDcyNzgxYzk5ZTk">Anzeigen</a>

Und das ist die Art Link, die bestehen bleiben soll:
HTML:
<a dir="ltr" href="/a/DOMAIN/qualitaetsmanagement/qm/formblaetter/qm-system/DOKUMENT.doc?attredirects=0&amp;d=1">Herunterladen</a>

Sie unterscheiden sich also beim target, beim Beginn des hrefs und des klickbaren Strings.

Wie kann ich dem Javascript also beibringen, dass nur Links mit href=https://docs.google.com/*** bzw. mit dem <a>Anzeigen</a> deaktiviert bzw. gar nicht angezeigt werden?
 
So vielleicht:

Javascript:
<script language="javascript" type="text/javascript">
function linkcheck () {
for (a = 0; a < document.getElementsByTagName("a").length; a++) {
	if (document.getElementsByTagName("a")[a].innerHTML == "Anzeigen") {
		document.getElementsByTagName("a")[a].style.display = "none";
	}
}
}
</script>

<a target="_blank" dir="ltr" href="https://docs.google.com/a/DOMAIN/viewer?a=v&amp;pid=sites&amp;srcid=dGpmYmdwcm9qZWt0LmRlfHF1YWxpdGFldHNtYW5hZ2VtZW50fGd4OjY3YTg4MDcyNzgxYzk5ZTk">Anzeigen</a>
<a dir="ltr" href="/a/DOMAIN/qualitaetsmanagement/qm/formblaetter/qm-system/DOKUMENT.doc?attredirects=0&amp;d=1">Herunterladen</a>

<div onclick="linkcheck();">Check</div>

Wobei hier nur auf dem Linktext "Anzeigen" geprüft wird. Aber das kann man ja noch erweitern sofern es für dich nützlich ist.
 
Danke dir!
Wenn google Javascript direkt zulassen würde, würde ich es gern ausprobieren.
Mal schauen, wie ich es verbogen bekomme.

Tante Edit sagt: Google Sites lassen anscheinend doch Javascript zu, man muss nur arg rumsuchen.
Dennoch funktioniert das Snippet weder in Google Sites, noch in einer schnell hingefummelten html standalone.
 
Zuletzt bearbeitet:
Ich habe in der Zwischenzeit noch einmal weitere Foren durchgewühlt und die Glasguhgel benutzt, bin aber leider zu keinem Ergebnis gekommen.

Der Code (danke nochmal an tombe!) in leicht abgewandelter Form sieht nun so aus:

HTML:
<HTML>
<head>
<script language="javascript" type="text/javascript">
function linkcheck () {
	for (var i = 0; i < document.getElementsByTagName("a").length; i++) {
		if (document.getElementsByTagName("a")[i].innerHTML == "Anzahl") {
			document.getElementsByTagName("a")[i].style.display = "none";
		}
	}
}
</script>
</head>
<body>
<a target="_blank" dir="ltr" href="https://docs.google.com/a/DOMAIN/viewer?a=v&amp;pid=sites&amp;srcid=dGpmYmdwcm9qZWt0LmRlfHF1YWxpdGFldHNtYW5hZ2VtZW50fGd4OjY3YTg4MDcyNzgxYzk5ZTk">Anzeigen</a>
<a dir="ltr" href="/a/DOMAIN/qualitaetsmanagement/qm/formblaetter/qm-system/DOKUMENT.doc?attredirects=0&amp;d=1">Herunterladen</a>
 
<div onload="linkcheck();"></div>
</body>
</html>

Das habe ich, so wie er ist, einmal lokal in einer einfachen html sowie auf jsbin.com getestet. Beide mit dem gleichen Ergebnis: Der Link ist noch immer zu sehen.

Ich habe es auch schon mit
Code:
for (var i = 0; i < document.getElementsByTagName("href").length; i++) {
		if (document.getElementsByTagName("href")[i].match('viewer')) {
			document.getElementsByTagName("href")[i].style.display = "none";
		}
	}
versucht, aber auch kein Erfolg.

Gibt es sonst noch Möglichkeiten?
 
Dir ist aber schon klar das du in der Funktion auf den Text "Anzahl" prüfst und im Link der Text "Anzeigen" steht.

Außerdem steht der Funktionsaufruf nicht im body-Tag der Seite!
HTML:
<html>
<head>
<script language="javascript" type="text/javascript">
function linkcheck () {
  for (var i = 0; i < document.getElementsByTagName("a").length; i++) {
    if (document.getElementsByTagName("a")[i].innerHTML == "Anzeigen") {
      document.getElementsByTagName("a")[i].style.display = "none";
    }
  }
}
</script>
</head>
<body onload="linkcheck();">
<a target="_blank" dir="ltr" href="https://docs.google.com/a/DOMAIN/viewer?a=v&amp;pid=sites&amp;srcid=dGpmYmdwcm9qZWt0LmRlfHF1YWxpdGFldHNtYW5hZ2VtZW50fGd4OjY3YTg4MDcyNzgxYzk5ZTk">Anzeigen</a>
<a dir="ltr" href="/a/DOMAIN/qualitaetsmanagement/qm/formblaetter/qm-system/DOKUMENT.doc?attredirects=0&amp;d=1">Herunterladen</a>
</body>
</html>

Diesen Code auf jsbin getestet und es klappt!
 
*Kopf_an_Tischplatte* Jo, is klar. Immer diese Kleinigkeiten...

Danke nochmals tombe! Das Script funktioniert nun so, wie es soll.
Jetzt muss ich mich "nur noch" darum kümmern, wie ich das in die Google Sites gepresst bekomme.
Das geht dann aber in ein anderes Unterforum, sofern vorhanden.
 
Zurück