如果搜索词必须是 POST 变量,如何在 Google Chrome 中创建新的搜索引擎?
我尝试将 POST 数据转换为带有 %s 占位符的 GET 查询字符串,但没有成功。
答案1
尝试javascript:
网址
我设法通过这个(确实相当讨厌的)解决方法得到了我想要的东西:一个javascript:
创建并立即提交表单的 URL。这意味着,当您定义搜索引擎时,而不是像这样的 URL:
http://www.example.com/search?term=%s
您可以使用以下 URL/代码:
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>');
因为它很可能是一个很长的字符串,所以最好在文本编辑器中准备它,然后将其复制粘贴到 URL 栏中。
例如:这是意大利语-英语词典的搜索 URL:
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>');
这里再次出现了同样的事情,但将单行手动重新格式化为多行,以使其更易于阅读和理解:
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>
'
);
PS 不幸的是,这种方法在从空白的“新标签”页面执行搜索时不起作用。可以通过安装“Ultimate New tab”扩展来解决这个问题。
答案2
document.write()
如果您愿意,我已经将@etuardu 的解决方案转换为这个,而不是使用:
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();
答案3
首先,您需要使用此 PHP 代码托管页面:
<!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>
然后输入搜索网址:
http://yourwebsite.com/filename.php?action=http://sitetosearch.com/search.php&inputname=query&inputvalue=%s
(将 URL、文件名和输入名称替换为您的数据)
例如(搜索http://fansubs.ru/search.php通过主机http://webercom.ru/):
http://webercom.ru/post.php?action=http://fansubs.ru/search.php&inputname=query&inputvalue=%