这就是问题所在:我们有一个带有搜索表单的HTML页面,需要获取特定引用URL的特定部分,并将它们预先填充到搜索表单中。
这样用户只需点击搜索而无需手动输入查询(因为它已经存在)。
以下是2个带参数和目录的引用网址
1)http://www.bing.com/search?q=tiny+cats&form=MOZSBR&pc=MOZI (所以如果引用者是bing.com,那么要获取的文本来自“q”param。=“tiny + cats”在这种情况下)
2)http://cutestcatpics.com/tag/tiny-cats/pages/1.php (所以如果引用者是cutestcatpics.com,那么获取的文本来自第二级。在这种情况下,目录=“tiny-cats”)
以下是包含搜索表单的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>
任何酷的开发都可以帮助我吗?
提前致谢。
答案 0 :(得分: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/
现在您需要修改代码来处理第二种情况。