Spotify 应用程序和 jQuery
Posted
技术标签:
【中文标题】Spotify 应用程序和 jQuery【英文标题】:Spotify Apps and jQuery 【发布时间】:2012-01-20 05:50:53 【问题描述】:如何在我的 Spotify 应用程序中添加和使用 jQuery(使用 Spotify 应用程序 API)?
关于这篇文章http://docs.jquery.com/Using_jQuery_with_Other_Libraries我在我的 Spotify 应用程序中试过这个:
<body onload="sp = getSpotifyApi(1); j = sp.require('jquery'); tutorial = sp.require('tutorial'); tutorial.init();">
然后:
var $j = j.jQuery.noConflict();
$j("h2").text("ddd");
但它不起作用......
【问题讨论】:
【参考方案1】:为什么不在head
中添加jQuery.js 文件?
所以如果你学习教程http://developer.spotify.com/download/spotify-apps-api/tutorial/ 它会变成
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My First App</title>
<link rel="stylesheet" href="sp://import/css/adam.css">
<link rel="stylesheet" href="tutorial.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
</head>
<body>
<h1 id="header">Hello, world!</h1>
</body>
</html>
【讨论】:
如果您将http://ajax.googleapis.com 添加到清单中的RequiredPermissions 中,则此方法有效。【参考方案2】:对于通过插件中的脚本标签使用 jquery 是下载 jquery,将其保存到您的插件文件夹并简单地调用它:
<script type="text/javascript" src="jquery.js"></script>
这是有道理的,因为指南说:
[...]您必须确保将所有逻辑/布局/图形/等捆绑在 您的应用程序包,以便在运行时无法替换它[...] 简而言之 - 只从您自己的后端请求动态数据,然后让 所有其他数据都进入应用程序包本身。
这应该意味着只能向外部位置发出 POST/GET 请求,并且只能向清单RequiredPermissions 列表中列出的位置发出。 我确信可以通过在清单中允许 ajax.googleapis.com 来解决这个问题,通过外部调用下载 jquery 并通过一些邪恶的 eval 函数运行它。但我真的没有看到任何意义.
使用 CDN 最适用于您希望用户使用较早时间从同一 CDN 下载的缓存版本的 jquery 以节省加载时间的网站。然而,在 Spotify 应用案例中,远程托管 jquery 并没有真正的利润,即使该应用的每个用户都始终连接到互联网。
【讨论】:
【参考方案3】:我可以把它放在文档的顶部。如果我的应用是社交应用并且 jquery 位于 /js/jquery-1.7.1.min.js 中,请编写以下内容
sp.require("sp://social/js/jquery-1.7.1.min");
【讨论】:
【参考方案4】:您可以通过在 index.html 中包含脚本标记来使用 jQuery,但建议您从应用程序中的本地副本加载 jquery.js - 否则您必须添加 code.jquery.com suddomain到 manifest.json 上的 RequiredPermissions 数组。
【讨论】:
【参考方案5】:我认为您不允许通过脚本标签访问外部文件。但是,如果您下载 jquery.js 并将其放入您的应用程序文件夹中,您将能够按照示例显示的方式访问它。
【讨论】:
以上是关于Spotify 应用程序和 jQuery的主要内容,如果未能解决你的问题,请参考以下文章
在 Spotify(Javascript)中进行 ajax 调用后没有保存 Cookie?
试图通过 jQuery 使 Spotify 小部件响应但无法完成。帮我