Hallo,
Ich haette gerne auf einer Seite eine Suchfunktion so wie sie frueher mal bei CNNfn war, also wo man vor absenden der query waehlen kann, ob in der Seite oder im Web (mit Google) gesucht werden soll.
Zuerst einmal vorab: Wer braucht so etwas? Wenn ich mit Google suchen will, gehe ich doch auf google.de oder benutze die Toolbar. Ich schau doch nicht auf die cnn-Homepage, um das Internet mit Google zu durchsuchen.
- Eingabe der Suchbegriffe:
<form onSubmit="return suchwo()" NAME="qf">
<input type=radio name="wo" checked value="seite"> diese Seite <input type=radio name="wo" value="google"> Google<br><input type="text" name="query" size=20> <input type=submit value="Search"></form>
- So wird funktionierend an Google uebergeben:
<form method=get action="http://www.google.com/search" target="_blank"><input type=text name=q size=50></form>
Du musst dein Eingabefeld natürlich an die Bedürfnisse für Google anpassen:
<form onSubmit="return suchwo()" NAME="qf">
<input type="text" name="q" size=20 />
^^^
Wenn Google ein input-Feld mit dem namen "q" braucht, musst du dich danach richten.
- Und so stell ich mir das dazugehoerende if-else vor:
Da musst du dann nur noch die action des Forms sezten:
function suchwo()
{
if(document.qf.wo[0].checked == true) {
document.qf.action = "internesuche.pl";
} else {
document.qf.action = "http://www.google.de/search";
}
return true;
}
Wobei "internesuche.pl" die URL zur internen Seitensuche ist.
Natürlich solltest du noch die Form-Method (post oder get?) entsprechend setzen.
Nachteil: das funktioniert nur bei eingeschaltetem JavaScript.
Mir fällt gerade noch eine 2. Möglichkeit ein: du definierts ein Form mit der action für deine interne Seitensuche und dem event-Handler onSubmit="return suchwo()". In der funktion suchwo schreibst du folgendes:
function suchwo()
{
if(document.qf.wo[0].checked == true) {
return true; /* Formular abschicken */
} else {
location.href = "http://www.google.de/search?q=" + encodeURIComponent(document.qf.q.value)
return false; /* Formular nicht abschicken */
/* eigentlich sinnlos, da die Seite sowieso bereits verlassen wurde, aber IMHO trotzdem besser */
}
return true;
}
Nicht getestet, müsste aber ungefähr so funktionieren.
Robert
http://www.designauswahl.here.de
mit kostenlosem Webseiten-Generator ROBE.dit
[more than a HTMLE.dit]