Google-chrome – Google Chrome: search engine with search term in post variable

google-chrome

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.

Best Answer

Try javascript: URL

I 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.

Related Question