Google Search WebPart

Die Google Suche dürfte auch bei den meisten SharePoint Benutzern eine häufig genutzte Funktion zur Suche im Web sein. Marc Wagner hatte bereits vor einiger Zeit ein WebPart veröffentlicht (Google Search Webpart), das die Google Suche ermöglicht. Leider nur auf Englisch und nur über die Installation eines neuen Webparts. Deshalb habe ich einen Code geschrieben, der die Google Suche auf Deutsch ermöglicht (das ist aber natürlich auch auf andere Sprachen erweiterbar) und über das bereits integrierte Inhalts-Editor-Webpart einsetzbar ist.

Der Vorteil ist, dass dieses Webpart ohne Administratorberechtigungen auf jeder beliebigen SharePoint-Seite integrierbar und mit ein wenig HTML/Javascript Kenntnissen flexibel anpassbar ist. Dazu einfach das Inhalts-Editor-Webpart an eine beliebige Stelle innerhalb einer Webpartzone einfügen und anschließend über den Toolbereich den Quelltexteditor aufrufen. Dort muss nur folgender Code eingefügt werden:

<div style="text-align:center;"><div>
<a href="http://www.google.de"><img src="http://www.google.de/logos/Logo_40wht.gif" border="0" alt="Google" align="absmiddle"></a>
<input type="text" onKeyDown="if (event.keyCode==13) submit_google();" id="google_q" size="31" maxlength="255" value="" />
<button id="btnGoogle" type="button" onclick="submit_google();">Google Suche</button></div>
<div><input type="radio" id="g_site" name="g_scope" value="1" /> diese Seite
<input type="radio" name="g_scope" value="2" checked="checked" /> Web</div>
</div>
<script language="javascript" type="text/javascript">
// <![CDATA[
function submit_google()
{
	var googleQuery = document.getElementById('google_q');
	var g_url = "http://www.google.de/search?hl=de&q=";

	if(googleQuery)
	{
		if(googleQuery.value.length > 0)
		{
			var s = encodeURI(googleQuery.value);

			if(document.getElementById('g_site').checked)
			{
				s = "site:" + window.location.host + " " + s;
			}

			var g_w = window.open(g_url+s, "google_window");
			if(g_w != null) g_w.focus();
		}
		else
		{
			alert("Bitte einen Suchbegriff eingeben.");
		}
	}
}
// ]]>
</script>

Anschließend sollte das Webpart die Google Suchmaske wiefolgt anzeigen:
Google Search Webpart
Sollte der Popupblocker des Browsers das Öffnen der Suchergebnisse verhindern (weil das neue Fenster über eine Javascript-Funktion geöffnet wird), muss die SharePoint-Seite dort entsprechend als vertrauenswürdig eingerichtet werden.

32 Reaktionen zu “Google Search WebPart”

  1. SharePoint, SharePoint and stuff : SharePoint Kaffeetasse 15

    [...] Google Search WebPart [...]

  2. Heiko

    Hallo,

    ich habe den Code nach der Anleitung eingefügt. Allerdings erhalte ich im Browser immer in der Statuszeile links unten einen Fehler.
    “Fehler auf der Seite!” Objekt erwartet.

    Was mache ich da falsch?

    Danke
    Heiko

  3. Matthias

    Hallo Heiko,

    beim Einfügen des Codes hier im Blog wurden anscheinend einige Zeichen verändert. Ich habe das Ganze jetzt nochmal eingefügt. Bitte probiere es mit dem jetzigen Code noch einmal.

  4. Marco

    Hallo,

    ich würde gerne nur im Web suchen, mir ist es aber nicht gelungen das ganze so “umzubauen”, dass es geht. Sobald ich den ganzen Eintrag: diese Seite – wegnehme bekomme ich dann bei der Suche unten im Explorer die Fehlermeldung: Fehler auf dieser Seite.
    Gibt es da eine Möglichkeit?

    Vielen Dank für die Hilfe!
    marco

  5. Matthias

    Hallo Marco,

    dafür müsstest du eigentlich nur folgende Zeilen löschen:

    <div><input type="radio" id="g_site" name="g_scope" value="1" /> diese Seite
    <input type="radio" name="g_scope" value="2" checked="checked" /> Web</div>

    und im javascript-Bereich das hier löschen:

    if(document.getElementById(‘g_site’).checked)
    {
    s = “site:” + window.location.host + ” ” + s;
    }

    dann wird immer standardmäßig die Websuche in Google aufgerufen.

  6. Marco

    DANKE!

  7. Rene

    Hallo,

    kleiner Tipp noch, es stört viele Leute das jedesmal der Button zum absenden der Anfrage geklickt werden mauss, anstatt in der text Box einfach Return zu drücken, wie auf der Google Seite.

    Um dies hier auch zu ermöglichen einfach die Zeile für die Textbox auf folgende weise erweitern:

  8. vanMuch

    @Rene

    Welche Zeile?
    hinter >>Um dies hier auch zu ermöglichen einfach die Zeile für die Textbox auf folgende weise erweitern:>>????

  9. Matthias

    Hallo vanMuch,

    da wurde der Code von Rene wohl durch das System abgeschnitten. Der obenstehende Code sollte nun damit funktionieren.

  10. vanMuch

    Vielen Dank

    Habe es wie angegeben eingebaut, Suche mit der Enter Taste funktionbiert (zumindest bei mir) nicht.

    Da werde ich wohl noch ein wenig weiter forschen.

  11. Philipp

    Also bei mir klappt das mit der Enter-Taste leider nicht. :-(
    Ansonsten ein großartiges Webpart, vielen Dank.

  12. Dirk

    Hallo,

    erst einmal ein Riesenlob an den Autor. Es ist ja immer wieder schön genau die Sachen zu finden, die man sucht.

    Natürlich gibt es dann auch immer wieder kleine Anpassungen die man gerne hätte. Die eine wurde hier schon angesprochen, doch leider funktioniert auch bei mir das Ausführen der Suche mit der Enter Taste nicht. Des weiteren wird die Suche bei mir in einem neuen Fenster geöffnet. Gibt es da wohl die Möglichkeit das noch zu ändern?

    Wäre echt klasse wenn das jemand hin bekommt.

    Vielen Dank und Gruß,

    Dirk

  13. Matthias

    Also ich habs jetzt mit Firefox 3.0.5 und Internet Explorer 7 getestet. Jetzt sollte sich mit der Enter-Taste das Suchfenster wie gewünscht öffnen.

  14. Dirk

    Hallo Matthias,

    ein frohes Neues erst einmal!

    Super, jetzt klappt es! Hättest Du evtl. noch eine Alternative das sich kein neues Fenster nach dem drücken der Enter Taste öffnet, sondern die Ergebnisse in der vorhandenen angezeigt werden?

    Vielen Dank und Gruß,
    Dirk

  15. Matthias

    Hallo Dirk,

    dazu musst die folgende Zeilen

    var g_w = window.open(g_url+s, “google_window”);
    if(g_w != null) g_w.focus();

    mit dieser ersetzen:

    window.location.href = g_url+s;

    Gruß
    Matthias

  16. Dirk

    Hi Matthias,

    vielen Dank für Deine Rasche Antwort! Funktioniert wunderbar.

    Werde Deine Seite im Auge behalten – der Support gefällt mir :-)

    Gruß,
    Dirk

  17. Björn Andersen

    Wieso löst ein “ENTER” einen beep aus, ein click auf den Button aber nicht? Kann man das abstellen?
    (Hat vielleicht was mit Popupblockern zu tun?)

  18. SPPD074 SharePointPodcast - SharePointPodcast - SharePointCommunity

    [...] Google Search WebPart [...]

  19. Michael

    Hallo.

    bei mir funktioniert die Suche leider nicht.
    Wenn ich einen Suchbegriff eingebe und auf suchen klicke kommt
    wieder eine leere google Suchseite, aber leider nicht meine Ergebnisse.
    Was hab ich denn falsch gemacht ?

    Grüße
    Michael

  20. Michael

    Hatt denn keiner einen Tipp Für mich was ich falsch mache ?

  21. Matthias

    Hallo Michael,

    d.h. es öffnet sich wie gewünscht ein neues Fenster mit der Google-Suche? Ist das so bei einem bestimmten Suchbegriff oder bei allen? Hast du den Code in einer reinen HTML-Seite (außerhalb SharePoint) getestet?

  22. Michael

    Hallo Matthias,

    danke für Deine Antwort. Ja genau, es öffnet sich eine neue Seite wieder mit der Google Suche. Ich habe es mit verschiedenen Suchbegriffen versucht. Außerhalb des Sharepoints noch nicht, das muß ich noch testen.

  23. Michael

    Es funktioniert !!!

    Danke Matthias,

    ich hatte wohl einen Fehler eingebaut…

  24. Daniel

    Ich habe dasselbe Problem wie du Michael.
    Was hast du denn geändert, damit sich keine neues Fenster mit der Google-Suche öffnet?

  25. Matthias

    Hallo Daniel,

    meinst du damit, dass bei dir der Suchtext nicht korrekt übergeben wird oder sich einfach nur unerwünschterweise ein neues Fenster für die Suche öffnet? Falls letzteres zutrifft, müsstest du nur folgende Zeilen im Code

    var g_w = window.open(g_url+s, “google_window”);
    if(g_w != null) g_w.focus();

    mit dieser hier ersetzen:

    window.location.href = g_url+s;

  26. Sandra

    Hallo Matthias,

    erstmal großes Kompliment für dieses Webpart. Tolle Idee.
    Ich habe aber leider auch das Problem, dass ich – egal mit welchem Suchwort – einfach nur ein neues Fenster mit Google bekomme.
    Sprich, ich müsste da dann nochmal das Suchwort eingeben und abschicken.

    Ich habe auch wie du am 22.02. gepostet hast, die Zeilen ersetzt, das Ergebnis bleibt aber leider gleich.
    Woran kann es sonst noch liegen?

    Danke schonmal im Voraus

    P.S. meine HTML-Kenntnisse tendieren gegen null, ich brauch also extrem einfache Erklärungen ;P

  27. Matthias

    Hallo Sandra,

    ich habe den Code nochmal getestet und bei mir funktioniert er wie gewünscht. Was steht denn in der Adresszeile des Fensters mit der leeren Google-Seiten? Du kannst mir ja mal den Code schicken, den du eingebunden hast, vielleicht finde ich was :-)

  28. Sandra

    Hallo Matthias,

    in der Adresszeile des neuen Fensters steht dann
    http://www.google.de/webhp?hl=de

    Der Code den ich eingebunden hab ist 1:1 der, der oben hier gepostet wurde.
    Ich habe definitiv mit verschiedenen Suchbegriffen getestet. Die Suche also nicht leer abgeschickt, denn da taucht dann wie gewünscht die Nachricht “Bitte einen Suchbegriff eingeben” auf

    Danke schön fürs schnelle Antworten ;)

  29. Matthias

    Schicke mal bitte deinen eingebundenen Code (so wie er im Inhaltseditor-Webpart im Quelltext steht) an meine E-Mail-Adresse (siehe Impressum), hier im Kommentar wird er nicht komplett angezeigt.

  30. Philip

    Hallo Matthias,

    das Code ist super klasse.
    Aber es klappt einmal und dann wieder nicht. Nachdem es einermal nicht geklappt hat, klappt es nie wieder danach.
    Woran kann das liegen? Brauche das Webpart umbedingt im Sharepoint.
    Er sagt immer “Fehler auf der Seite”

    Danke und Gruß

  31. Philip

    Details zum Fehler auf der Webseite

    Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
    Zeitstempel: Tue, 15 Nov 2011 13:51:01 UTC

    Meldung: Objekt erwartet
    Zeile: 910
    Zeichen: 1
    Code: 0
    URI: http://sharepoint/SitePages/Homepage.aspx

  32. Philip

    Schon gut :) Danke

Einen Kommentar schreiben