0

这正是问题所在:我们有一个带有搜索表单的 HTML 页面,需要获取特定引荐来源网址的特定部分并将它们预填充到搜索表单中。

这样用户只需点击搜索,而无需手动输入查询(因为它已经存在)。

以下是 2 个带有参数和目录的引荐来源网址示例

1) http://www.bing.com/search?q=tiny+cats&form=MOZSBR&pc=MOZI (所以如果引用者是bing.com,则要获取的文本来自“q”参数。=“tiny+cats “ 在这种情况下)

2) http://cutestcatpics.com/tag/tiny-cats/pages/1.php (所以如果referrer是cutestcatpics.com,则要获取的文本来自2nd.level directory = "tiny-cats" in this案子)

这是带有搜索表单的 html 页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-

transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>

<body>
<form action="http://search.yahoo.com/search?p=" target="_blank" id="search-box">
  <input type="text" name="q" size="31" />
  <input type="submit" value="Search" />
</form>

</body>
</html>

任何很酷的开发人员可以帮助我吗?

提前致谢。

4

1 回答 1

1

基本上,您需要使用 JavaScript 来解析引荐来源网址并设置输入值。这是一个起点:

function getReferrerVariable(variable) {
    var referer = document.referrer;
    var query = referer.split('?')[1];
    if(typeof query === 'undefined') return '';
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
}

function urldecode(str) {
   return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}

var input = document.getElementsByName("q")[0];
var term = urldecode(getReferrerVariable('q'));
input.value = term;

这是一个工作示例:http: //jsfiddle.net/NgeHE/

现在您需要修改代码来处理您的第二种情况。

于 2013-05-13T18:14:14.280 回答