我有一个youtube自动完成代码,但我不知道如何组合这些代码,请使此代码有效。此serch应显示youtube自动填充查询。是否可以组合此代码
js代码
$("#youtube").autocomplete({
source: function(request, response){
/* Google Developer ID (optional) */
var apiKey = 'AI39si7ZLU83bKtKd4MrdzqcjTVI3DK9FvwJR6a4kB_SW_Dbuskit-mEYqskkSsFLxN5DiG1OBzdHzYfW0zXWjxirQKyxJfdkg';
/* Search keyword */
var query = request.term;
/* youtube sorgusu */
$.ajax({
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q="+query+"&key="+apiKey+"&format=5&alt=json&callback=?",
dataType: 'jsonp',
success: function(data, textStatus, request) {
response( $.map( data[1], function(item) {
return {
label: item[0],
value: item[0]
}
}));
}
});
},
/* You can use transaction is selected here to */
select: function( event, ui ) {
$.youtubeAPI(ui.item.label);
}
});
按钮上的压力搜索
$('button#submit').click(function(){
var value = $('input#youtube').val();
$.youtubeAPI(value);
});
Youtube搜索功能
$.youtubeAPI = function(kelime){
var sonuc = $('#sonuc');
sonuc.html('Arama gerçeklestiriliyor...');
$.ajax({
type: 'GET',
url: 'http://gdata.youtube.com/feeds/api/videos?q=' + kelime + '&max-results=15&v=2&alt=jsonc',
dataType: 'jsonp',
success: function( veri ){
if( veri.data.items ){
sonuc.empty();
$.each( veri.data.items, function(i, data) {
sonuc.append('<div class="youtube">\
<img src="' + data.thumbnail.sqDefault + '" alt="" />\
<h3><a href="javascript:void(0)" onclick="$.youtubePlay(\'' + data.id + '\', \'' + data.content[5] + '\')">' + data.title + '</a></h3>\
<p>' + data.description + '</p>\
</div>\
<div class="youtubeOynat" id="' + data.id + '"></div>');
});
}
else {
sonuc.html('<div class="hata"><strong>' + kelime + '</strong> ile ilgili hiç video bulunamadi!</div>');
}
}
});
}
YouTube视频播放功能
$.youtubePlay = function(yid, frame){
$('.youtubeOynat').slideUp().empty();
$('#'+yid).slideDown().html('<iframe src="'+ frame +'&autoplay=1" style="width: 100%; box-sizing: border-box; height: 300px" />');
}
html代码
<div class="arama">
<form action="" onsubmit="return false">
<h2>Youtube API jQuery AutoComplete</h2>
<div class="ui-widget">
<label for="youtube">Youtube SEARCH: </label>
<input id="youtube" />
<button id="submit">SEARCH</button>
</div>
</form>
</div>
答案 0 :(得分:1)
您的代码运行正常。我刚试过它。复制下面的代码并试一试。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$("#youtube").autocomplete({
source: function(request, response){
/* Google Developer ID (optional) */
var apiKey = 'AI39si7ZLU83bKtKd4MrdzqcjTVI3DK9FvwJR6a4kB_SW_Dbuskit-mEYqskkSsFLxN5DiG1OBzdHzYfW0zXWjxirQKyxJfdkg';
/* Search keyword */
var query = request.term;
/* youtube sorgusu */
$.ajax({
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q="+query+"&key="+apiKey+"&format=5&alt=json&callback=?",
dataType: 'jsonp',
success: function(data, textStatus, request) {
response( $.map( data[1], function(item) {
return {
label: item[0],
value: item[0]
}
}));
}
});
},
/* You can use transaction is selected here to */
select: function( event, ui ) {
$.youtubeAPI(ui.item.label);
}
});
$('button#submit').click(function(){
var value = $('input#youtube').val();
$.youtubeAPI(value);
});
$.youtubeAPI = function(kelime){
var sonuc = $('#sonuc');
sonuc.html('Arama gerçeklestiriliyor...');
$.ajax({
type: 'GET',
url: 'http://gdata.youtube.com/feeds/api/videos?q=' + kelime + '&max-results=15&v=2&alt=jsonc',
dataType: 'jsonp',
success: function( veri ){
if( veri.data.items ){
sonuc.empty();
$.each( veri.data.items, function(i, data) {
sonuc.append('<div class="youtube">\
<img src="' + data.thumbnail.sqDefault + '" alt="" />\
<h3><a href="javascript:void(0)" onclick="$.youtubePlay(\'' + data.id + '\', \'' + data.content[5] + '\')">' + data.title + '</a></h3>\
<p>' + data.description + '</p>\
</div>\
<div class="youtubeOynat" id="' + data.id + '"></div>');
});
}
else {
sonuc.html('<div class="hata"><strong>' + kelime + '</strong> ile ilgili hiç video bulunamadi!</div>');
}
}
});
}
$.youtubePlay = function(yid, frame){
$('.youtubeOynat').slideUp().empty();
$('#'+yid).slideDown().html('<iframe src="'+ frame +'&autoplay=1" style="width: 100%; box-sizing: border-box; height: 300px" />');
}
});
</script>
<div class="arama">
<form action="" onsubmit="return false">
<h2>Youtube API jQuery AutoComplete</h2>
<div class="ui-widget">
<label for="youtube">Youtube SEARCH: </label>
<input id="youtube" />
<button id="submit">SEARCH</button>
</div>
</form>
</div>
答案 1 :(得分:0)
neerajdngl的代码非常好。我更新了它以使搜索图标有效。以下代码现在通过Youtube API自动填充,功能齐全。如果您在example.com/search.html并搜索猫,则会转到example.com/cats
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$("#youtube").autocomplete({
source: function(request, response){
/* Google Developer ID (optional) */
var apiKey = 'AI39si7ZLU83bKtKd4MrdzqcjTVI3DK9FvwJR6a4kB_SW_Dbuskit-mEYqskkSsFLxN5DiG1OBzdHzYfW0zXWjxirQKyxJfdkg';
/* Search keyword */
var query = request.term;
/* youtube sorgusu */
$.ajax({
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q="+query+"&key="+apiKey+"&format=5&alt=json&callback=?",
dataType: 'jsonp',
success: function(data, textStatus, request) {
response( $.map( data[1], function(item) {
return {
label: item[0],
value: item[0]
}
}));
}
});
},
/* You can use transaction is selected here to */
select: function( event, ui ) {
$.youtubeAPI(ui.item.label);
}
});
$('button#submit').click(function(){
var value = $('input#youtube').val();
$.youtubeAPI(value);
});
$.youtubeAPI = function(kelime){
var sonuc = $('#sonuc');
sonuc.html('Arama gerçeklestiriliyor...');
$.ajax({
type: 'GET',
url: 'http://gdata.youtube.com/feeds/api/videos?q=' + kelime + '&max-results=15&v=2&alt=jsonc',
dataType: 'jsonp',
success: function( veri ){
if( veri.data.items ){
sonuc.empty();
$.each( veri.data.items, function(i, data) {
sonuc.append('<div class="youtube">\
<img src="' + data.thumbnail.sqDefault + '" alt="" />\
<h3><a href="javascript:void(0)" onclick="$.youtubePlay(\'' + data.id + '\', \'' + data.content[5] + '\')">' + data.title + '</a></h3>\
<p>' + data.description + '</p>\
</div>\
<div class="youtubeOynat" id="' + data.id + '"></div>');
});
}
else {
sonuc.html('<div class="hata"><strong>' + kelime + '</strong> ile ilgili hiç video bulunamadi!</div>');
}
}
});
}
$.youtubePlay = function(yid, frame){
$('.youtubeOynat').slideUp().empty();
$('#'+yid).slideDown().html('<iframe src="'+ frame +'&autoplay=1" style="width: 100%; box-sizing: border-box; height: 300px" />');
}
});
</script>
<div class="arama">
<form action="" onsubmit="return false">
<div class="ui-widget">
<input id="youtube" />
<button id="submit" onClick='javascript:goTo()'>🔍</button>
</div>
</form>
</div>
<script>
function goTo()
{
location.href = document.getElementById('youtube').value;
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$("#youtube").autocomplete({
source: function(request, response){
/* Google Developer ID (optional) */
var apiKey = 'AI39si7ZLU83bKtKd4MrdzqcjTVI3DK9FvwJR6a4kB_SW_Dbuskit-mEYqskkSsFLxN5DiG1OBzdHzYfW0zXWjxirQKyxJfdkg';
/* Search keyword */
var query = request.term;
/* youtube sorgusu */
$.ajax({
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1&q="+query+"&key="+apiKey+"&format=5&alt=json&callback=?",
dataType: 'jsonp',
success: function(data, textStatus, request) {
response( $.map( data[1], function(item) {
return {
label: item[0],
value: item[0]
}
}));
}
});
},
/* You can use transaction is selected here to */
select: function( event, ui ) {
$.youtubeAPI(ui.item.label);
}
});
$('button#submit').click(function(){
var value = $('input#youtube').val();
$.youtubeAPI(value);
});
$.youtubeAPI = function(kelime){
var sonuc = $('#sonuc');
sonuc.html('Arama gerçeklestiriliyor...');
$.ajax({
type: 'GET',
url: 'http://gdata.youtube.com/feeds/api/videos?q=' + kelime + '&max-results=15&v=2&alt=jsonc',
dataType: 'jsonp',
success: function( veri ){
if( veri.data.items ){
sonuc.empty();
$.each( veri.data.items, function(i, data) {
sonuc.append('<div class="youtube">\
<img src="' + data.thumbnail.sqDefault + '" alt="" />\
<h3><a href="javascript:void(0)" onclick="$.youtubePlay(\'' + data.id + '\', \'' + data.content[5] + '\')">' + data.title + '</a></h3>\
<p>' + data.description + '</p>\
</div>\
<div class="youtubeOynat" id="' + data.id + '"></div>');
});
}
else {
sonuc.html('<div class="hata"><strong>' + kelime + '</strong> ile ilgili hiç video bulunamadi!</div>');
}
}
});
}
$.youtubePlay = function(yid, frame){
$('.youtubeOynat').slideUp().empty();
$('#'+yid).slideDown().html('<iframe src="'+ frame +'&autoplay=1" style="width: 100%; box-sizing: border-box; height: 300px" />');
}
});
</script>
<div class="arama">
<form action="" onsubmit="return false">
<div class="ui-widget">
<input id="youtube" />
<button id="submit" onClick='javascript:goTo()'>🔍</button>
</div>
</form>
</div>
<script>
function goTo()
{
location.href = document.getElementById('youtube').value;
}
</script>
&#13;