在尝试使用JS与Youtube API进行交互时,我似乎遇到了此错误。这是我收到的控制台错误。
Uncaught TypeError: Cannot read property 'search' of undefined
at HTMLFormElement.<anonymous> (app.js:7)
at HTMLFormElement.dispatch (jquery-2.2.4.min.js:3)
at HTMLFormElement.r.handle (jquery-2.2.4.min.js:3)
这是我用来互动的脚本。
function tplawesome(e,t){res=e;for(var n=0;n<t.length;n++){res=res.replace(/\{\{(.*?)\}\}/g,function(e,r){return t[n][r]})}return res}
$(function() {
$("form").on("submit", function(e) {
e.preventDefault();
/* prepare api request */
var request = gapi.client.youtube.search.list({
part: "snippet",
type: "video",
q: encodeURIComponent($("#search").val()).replace(/%20/g, "+"),
maxResults: 3,
order: "viewCount",
publishedAfter: "2015-01-01T00:00:00Z"
});
/* execute the request */
request.execute(function(response) {
var results = response.result;
$("#results").html("");
$.each(results.items, function(index, item) {
$.get("tpl/item.html", function(data) {
$("#results").append(tplawesome(data, [{"title":item.snippet.title, "videoid":item.id.videoId}]));
});
});
resetVideoHeight();
});
});
$(window).on("resize", resetVideoHeight);
});
function resetVideoHeight() {
$(".video").css("height", $("#results").width() * 9/16);
}
function init() {
gapi.client.setApiKey("myapikey");
gapi.client.load("youtube", "v3", function() {
/* check if api is ready */
});
}
最初帮助我编写脚本的人告诉我,除非是在Apache等实际的网络服务器上,否则它会有问题,但我的不知道是什么导致了这个问题。有什么想法吗?
答案 0 :(得分:0)
您的问题似乎是没有调用init
方法。在init();
$("form").on("submit", function(e) { ...
行
我已经尝试过此操作并收到未经授权的异常,因为您希望使用dud API密钥。