我在我的网站上使用谷歌网站搜索,它在每个浏览器中都能很好地工作。但我想使用我自己的输入元素,这样我就可以在顶部导航中放置一个自定义搜索栏。我找到了一个允许我这样做的脚本,它通过在URL后面附加"?q="来工作。搜索登录页上的脚本获取查询并将其注入到新的谷歌搜索字段中。URL最终看起来像这样:
www.website.com/search/?q=查询
这适用于除安卓移动设备外的所有浏览器。
这是我的顶部导航中的自定义搜索栏的脚本:
<form onsubmit="return submitQuery()" id="search-form">
<input autocomplete="off" id="search" type="text" name="q" maxlength="100">
<button type="submit" id="searchSubmit">Search</button>
</form>
<script>
function submitQuery() {
if ($('#search').val()=='Search') {
alert('Please enter a search term');
return false;
}
else {
window.location = '/search/?q='
+ encodeURIComponent(
document.getElementById('search').value);
return false;
}
}
</script>
这是我的搜索页面上的脚本
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1', {language : 'en', style : google.loader.themes.MINIMALIST});
/**
* Extracts the users query from the URL.
*/
function getQuery() {
var url = '' + window.location;
var queryStart = url.indexOf('?') + 1;
if (queryStart > 0) {
var parts = url.substr(queryStart).split('&');
for (var i = 0; i < parts.length; i++) {
if (parts[i].length > 2 && parts[i].substr(0, 2) == 'q=') {
return decodeURIComponent(
parts[i].split('=')[1].replace(/+/g, ' '));
}
}
}
return '';
}
function onLoad() {
// Create a custom search control that uses a CSE restricted to
// code.google.com
var customSearchControl = new google.search.CustomSearchControl(
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); // this is the unique search engine ID
var drawOptions = new google.search.DrawOptions();
drawOptions.setAutoComplete(true);
// Draw the control in content div
customSearchControl.draw('results', drawOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
// Run a query
customSearchControl.execute(getQuery());
customSearchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
// Maximum length of query is 100 characters
$('.gsc-input').attr('maxlength', '100');
}
google.setOnLoadCallback(onLoad);
</script>
我如何才能让它停止在安卓设备上崩溃?如果我需要清理这些东西,请告诉我。
您经常可以通过检查logcat来找到Android浏览器崩溃的原因。