Javascript 好的,我';我们已经得到了bit.ly链接,但是现在jQuery的异步性正在成为阻碍 函数dlLink(标题、当前数组、当前索引、当前选项) { var img=新图像(); img.src='画廊/壁纸/'+标题; html=img.width+'x'+img.height+' +“http://”; //设置默认选项 var默认值={ 登录名:'************', apiKey:“****************************************”, longUrl:'http%3A%2F%2Fschnell.dreamhosters.com%2fwallpaps.php%3Fwp='+标题 }; //构建要查询的URL var daurl=”http://api.bit.ly/v3/shorten?" +“&login=“+defaults.login” +“&apiKey=“+defaults.apiKey +“&longUrl=“+defaults.longUrl” +“&format=json&callback=?”; //利用bit.ly API $.getJSON(daurl,函数(结果){ $('#fancybox title').append(results.data[“url”].substr(7)); }); 如果(图像完成) 返回html; }
好的,这个函数的要点是,它是对Fancybox的回调,将HTML内容放入它的“title”部分。在本节中,我将图像的分辨率、下载链接和返回该网站图像的bit.ly链接放在一起-最初我在bit.ly URL上遇到了XMLHTTPRequest问题,但我似乎已经解决了这些问题 不过,现在的问题是,我需要变量“html”在返回语句出现之前将所有html内容放入fancybox。虽然看起来一切都是在return语句之前发生的,但jQuery是异步执行$.getJSON()函数的,因此在dlLink结束之前“html”不会包含任何内容。我需要一种方法使事情按照代码中所示的顺序进行,以便$.getJSON请求和后续回调函数总是在返回语句之前完成它们正在做的事情Javascript 好的,我';我们已经得到了bit.ly链接,但是现在jQuery的异步性正在成为阻碍 函数dlLink(标题、当前数组、当前索引、当前选项) { var img=新图像(); img.src='画廊/壁纸/'+标题; html=img.width+'x'+img.height+' +“http://”; //设置默认选项 var默认值={ 登录名:'************', apiKey:“****************************************”, longUrl:'http%3A%2F%2Fschnell.dreamhosters.com%2fwallpaps.php%3Fwp='+标题 }; //构建要查询的URL var daurl=”http://api.bit.ly/v3/shorten?" +“&login=“+defaults.login” +“&apiKey=“+defaults.apiKey +“&longUrl=“+defaults.longUrl” +“&format=json&callback=?”; //利用bit.ly API $.getJSON(daurl,函数(结果){ $('#fancybox title').append(results.data[“url”].substr(7)); }); 如果(图像完成) 返回html; },javascript,jquery,json,url,bit.ly,Javascript,Jquery,Json,Url,Bit.ly,好的,这个函数的要点是,它是对Fancybox的回调,将HTML内容放入它的“title”部分。在本节中,我将图像的分辨率、下载链接和返回该网站图像的bit.ly链接放在一起-最初我在bit.ly URL上遇到了XMLHTTPRequest问题,但我似乎已经解决了这些问题 不过,现在的问题是,我需要变量“html”在返回语句出现之前将所有html内容放入fancybox。虽然看起来一切都是在return语句之前发生的,但jQuery是异步执行$.getJSON()函数的,因此在dlLink结束之
编辑-我知道了该做什么,上面的代码按照我的要求正确地执行。请看下面我的答案。好的,在意识到一些事情后,我终于解决了这个问题 1-在$.getJSON()的回调函数中,您应该尽可能地处理JSON数据 2-我试图放置链接的区域id为“fancybox title”,所以我继续说
$(“#fancybox title”)。追加(东西)代码>
3-Fancybox的标题(当至少显示在内部时)将仅针对在格式化标题的函数完成时已经存在的文本行调整自身大小。之后附加到它的任何内容都不会考虑大小,因此标题区域将保持不变,并且您将看到一行行文本爬到图片中(通过艰难的方式发现了这一点)。为了解决这个问题,我确保在我的“html”变量中添加第三行文本-
http://
,这使得Fancybox的标题区域可以容纳三行文本。然后在回调函数中,我使用substr获取bit.ly链接,从http://之后开始,一直到最后。其中的
在做什么?它是PHP。我正在使用它来植入一个函数,当页面加载时,如果一个名为“wp”的变量被传递到URL中,该函数将激发Fancybox。如果这个变量不在URL中,那么我不希望Fancybox像那样启动。
function dlLink(title, currentArray, currentIndex, currentOpts)
{
var img = new Image();
img.src = 'Gallery/Wallpapers/' + title;
html = img.width + ' x ' + img.height + '<br />'
+ '<a class = "nav" href = "Gallery/Wallpapers/' + title + '" target = "_blank">Download</a><br />http://';
// set up default options
var defaults = {
login: '*************',
apiKey: '*******************************',
longUrl: 'http%3A%2F%2Fschnell.dreamhosters.com%2Fwallpapers.php%3Fwp=' + title
};
// Build the URL to query
var daurl = "http://api.bit.ly/v3/shorten?"
+ "&login=" + defaults.login
+ "&apiKey=" + defaults.apiKey
+ "&longUrl=" + defaults.longUrl
+ "&format=json&callback=?";
// Utilize the bit.ly API
$.getJSON(daurl, function(results) {
$('#fancybox-title').append(results.data["url"].substr(7));
});
if(img.complete)
return html;
}