Ich versuche, Framework 7 Autocomplete-Funktion mit Youtube Search API v3 zu verwenden. Ich hatte Such-API für die automatische Vervollständigung mit Jquery UI verwendet. Framework 7 hat auch Ajax-Autocomplete-Funktion. Aber mein Code ist nicht mit Rahmen arbeiten 7.Youtube Suche Autocomplete funktioniert nicht mit Framework 7
Hier meine youtube Suche die automatische Vervollständigung ist js Code für jQuery UI, die zu 100% funktioniert und zeigt sich Videosuche Vorschlag zur Texteingabe
//code for auto complete using jquery UI works perfect
jQuery("#vid-search").autocomplete({
source: function(request, response) {
//console.log(request.term);
var sqValue = [];
jQuery.ajax({
type: "POST",
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1",
dataType: 'jsonp',
data: jQuery.extend({
q: request.term
}, { }),
success: function(data){
console.log(data[1]);
obj = data[1];
jQuery.each(obj, function(key, value) {
sqValue.push(value[0]);
});
response(sqValue);
}
});
},
select: function(event, ui) {
setTimeout(function() {
youtubeApiCall();
}, 300);
}
});
Und hier ist mein youtube Suche zum automatischen Vervollständigung Code mit Rahmen 7, Doest Video Suchvorschläge auf Text inpute zeigen ..
var autocompleteDropdownAjax = myApp.autocomplete({
input: '#autocomplete-dropdown-ajax',
openIn: 'dropdown',
preloader: true, //enable preloader
valueProperty: 'id', //object's "value" property name
textProperty: 'name', //object's "text" property name
limit: 20, //limit to 20 results
dropdownPlaceholderText: 'Try "JavaScript"',
expandInput: true, // expand input
source: function (autocomplete, query, request, response, render) {
var results = [];
if (query.length === 0) {
render(sqValue);
return;
}
// Show Preloader
autocomplete.showPreloader();
// Do Ajax request to Autocomplete data
$$.ajax({
type: "POST",
url: "http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&cp=1",
dataType: 'jsonp',
data: jQuery.extend({
q: request.term
}, { }),
success: function (data) {
// Find matched items
console.log(data[1]);
obj = data[1];
jQuery.each(obj, function(key, value) {
sqValue.push(value[0]);
});
response(sqValue);
// Hide Preoloader
autocomplete.hidePreloader();
// Render items by passing array with result items
render(sqValue);
}
});
},
select: function(event, ui) {
setTimeout(function() {
youtubeApiCall();
}, 300);
}
});
Seine Arbeit nicht .. Hier ist, was ich versucht nach Ihrer Antwort: [https://codepen.io/gourabxz/pen/PbQJQq](https://codepen.io/go urabxz/pen/PbQJQq) –
Wenn Sie die Fehlerkonsole überprüfen: 'Blockiertes Laden von gemischtem aktivem Inhalt ', liegt das daran, dass codepen HTTPS verwendet und die Datei, die Sie aufrufen, auf einem HTTP-Link ist, nachdem Sie den json-Link zu HTTPS geändert haben Es wird eine weitere allgemeine Sicherheitsfehlermeldung angezeigt: 'Cross-Origin Request Blocked' ist ein weiteres einfach zu behebendes Problem, aber Sie benötigen eine benutzerdefinierte gehostete PHP-Datei, um die Anfrage zu bearbeiten, Live-Beispiel: https://codepen.io/anon/pen/WoMXEz – tinyCoder
Der Inhalt der PHP-Datei, die ich verwendet habe: ' php header ('Zugriffssteuerung-Zulassen-Ursprung: *'); echo file_get_contents ("http://suggestqueries.google.com/complete/search?client=firefox&ds=yt&q=". Urlencode ($ _ REQUEST ['q']))); ?> ' – tinyCoder