我要做的目标是自动化我的工作流程。它收集该页面的具体细节,同时生成一个goo.gl缩短的URL,然后将其包装成警报以便于处理。当我将我的javascript放入书签时,它会在尝试使用下面记录的错误执行时挂起。但是,当我将它直接放入控制台时,它按预期工作。
不知道这里有什么解决方案,有什么想法吗?
从书签运行时,控制台会抛出此错误:
Uncaught TypeError: Cannot read property 'setApiKey' of undefined
使用的实时代码:
javascript: jQuery(document).ready(function($) {
/* Description Area */
var title = $(".job_header_title").text();
var company = $("#masthead > div > div.row > div > div.row.job-highlight > div > div:nth-child(1) > div.col-lg-4.col-md-4.col-sm-4.col-xs-12 > div > p:nth-child(3)").text();
var type = $("#aboutjob > div > table > tbody > tr:nth-child(2) > td:nth-child(2)").text();
var role = $("#aboutjob > div > div:nth-child(4) > div.panel-body").text();
var job = (company + " company is looking for a " + title + "/" + type + "\n\n" + role);
/* URL AREA */
var user = "DanielW1";
/* var apiKey = "AIzaSyCE2BK7kOhAKLiRd1BIw9rGZqyM6A58Y94"; */
var hireteammate = "https://hireteammate.com/invite/join/" + user + "?callback=";
var callbackUrl = encodeURIComponent(window.location.href);
var joblink = (hireteammate + callbackUrl);
var longurl = joblink;
$.getScript("https://apis.google.com/js/client.js", function(textStatus, jqxhr) {
/* console.log( textStatus +" "+ jqxhr.status + " Load was performed.");*/ /* Success */
gapi.client.setApiKey("AIzaSyCE2BK7kOhAKLiRd1BIw9rGZqyM6A58Y94");
gapi.client.load('urlshortener', 'v1', function() {
var request = gapi.client.urlshortener.url.insert({
'resource': {
'longUrl': longurl
}
});
var resp = request.execute(function(resp) {
if (resp.error) {
console.log('Error. ' + resp.error.message);
} else {
alert(job + "\n\n" + resp.id);
}
});
});
});
});
答案 0 :(得分:0)
从我在https://api.jquery.com/jquery.getscript/的文档中阅读的内容来看,错误似乎是合法的。
一旦脚本加载但未必执行,就会触发回调。
您应该查看有关正确整合以下链接中显示的javascript库的文档
但是我认为您可以通过加载库并提供一个回调函数引用来解决您的问题,该引用将在库加载并执行后执行。
我认为你应该做的是在回调函数中包含需要gapi实例的位,比如说gapiIsLoaded
function gapiIsLoaded() {
gapi.client.setApiKey("AIzaSyCE2BK7kOhAKLiRd1BIw9rGZqyM6A58Y94");
gapi....
}
..并将getScript函数指向此URL
答案 1 :(得分:0)
jQuery getScript load vs execution
下面的onload回调应解决问题:
https://developers.google.com/api-client-library/javascript/dev/dev_jscript
Nways,我访问了您提供的URL,它只是为select.js抛出了404错误。您能否在提到的网页上说明您在哪里收到此错误?