How do you make a new search engine in Google Chrome if the search term has to be a POST variable?
I tried translating the POST data into a GET querystring with the %s placeholder but this didn't work.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityHow do you make a new search engine in Google Chrome if the search term has to be a POST variable?
I tried translating the POST data into a GET querystring with the %s placeholder but this didn't work.
javascript:
URLI managed to get what I want with this (pretty nasty indeed) workaround: a javascript:
URL that creates and immediately submits the form.
This means, when you define your search engine, instead of a URL like this:
http://www.example.com/search?term=%s
you would use this URL/code:
javascript:document.write('<form name="f" action="http://www.example.com/search" method="POST"><input type="hidden" name="term" value="%s"></form><script>f.submit();</script>');
Since it'll most likely be a pretty long string it's better to prepare it in a text editor and then copy-paste it into the URL bar.
Example: This is the search URL for an Italian-English dictionary:
javascript:document.write('<form name="f" action="http://dizionari.repubblica.it/cgi-bin/inglese/find" method="POST"><input type="hidden" name="lemma" value="%s"><input type="hidden" name="sez" value="ita"></form><script>f.submit();</script>');
And here the same thing again, but with the single line manually reformatted into multiple lines to make it easier to read and understand:
document.write(
'
<form
name="f"
action="http://dizionari.repubblica.it/cgi-bin/inglese/find"
method="POST"
>
<input
type="hidden"
name="lemma"
value="%s"
>
<input
type="hidden"
name="sez"
value="ita"
>
</form>
<script>
f.submit();
</script>
'
);
P.S. Unfortunately, this method doesn't work when performing search from empty "New Tab" page. This can be fixed by installing "Ultimate New tab" extension.
First you need to host page with this PHP code:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form name="f" action=""<?php echo htmlspecialchars($_GET['action']); ?>" method="POST">
<input type="hidden" name="<?php echo htmlspecialchars($_GET['inputname']); ?>" value=""<?php echo htmlspecialchars($_GET['inputvalue']); ?>">
</form>
<script>f.submit();</script>
</body>
</html>
Then put in search url:
http://yourwebsite.com/filename.php?action=http://sitetosearch.com/search.php&inputname=query&inputvalue=%s
(replace urls, filenames and input name to your data)
For example (search on http://fansubs.ru/search.php via host http://webercom.ru/):
http://webercom.ru/post.php?action=http://fansubs.ru/search.php&inputname=query&inputvalue=%
I have converted @etuardu's solution into this one, not using document.write()
, if that's what you prefer:
javascript:f=document.createElement('form');f.method='post';f.action='http://www.example.com/search';i=document.createElement('input');i.name='term';i.value='%s';f.appendChild(i);document.body.appendChild(f);f.submit();