JS 提示在使用 soundcloud SDK 时给我一个 'SC' is not defined
SC.whenStreamingReady( function() {
'SC' 未定义
我在我的主文件之前添加了各种 js 文件 - 并将它们拼凑在一起......master 有一个 jQuery 闭包,因为这是一个 WordPress 项目。
(默认调用 jQuery,因为它基于 WordPress 安装)
前置 js 文件
快速点击(凉亭)
速度(凉亭)
soundcloudSDK( vendor )
(全部结合)
主文件
master-script.js:
(function($){
// =============================================
"use strict";
$(document).ready(function() {
// get track ready
var topDown = function() {
// soundcloud client ID
var scClientId = 'BLABLABLA';
// initialize the SDK
SC.initialize({
client_id: scClientId,
redirect_uri: "http://example.com/callback.html"
});
SC.whenStreamingReady( function() {
console.log('TOP DOWN');
});
};
});
// =============================================
})(jQuery);
编译为:compiled-js-file.js
HTML 文件...
<!doctype html>
<head>
<title>hi</title>
<script src='jQuery.js'></script>
<script src='compiled-js-file.js'></script>
</head>
<body>
<h1>html file</h1>
</body>
</html>
等等
我在主题的基础上制作了一个 .jshintrc 文件...
“全局变量”:{
“SC”:假
}
并完成了 ol /* globals: SC: true */
但是 .jshinrc 似乎没有做任何事情,评论让我得到了一个
'SC' 在它被定义之前被使用了。
我不是 JavaScript 专家......但我知道 SC 是一个对象......但它也存储在一个变量中......所以 - 看起来它应该像普通变量一样工作......
我做错了什么?或者这只是我必须忍受的事情?代码全部按预期运行...:) ???
最佳答案
SC
定义在 window
对象中 soundcloud JavaScript SDK : window.SC=window.SC||{}
。有一个旧github issue关于通过 JSHint 识别这种全局对象的麻烦,因为它通常不执行代码而是分析它。告诉 JSHint 关于 SC
的存在必须解决问题。 JSHint documentation 中描述了正确的语法.您应该使用 .jshintrc 文件中的 predef
属性定义变量:
{
"predef": [ "SC" ]
}
或者像这样使用内联配置:
/* global SC */
更新:如果您使用的是 CodeKit,请尝试 set globals using CodeKit UI .您需要将 SC
放入 Project Settings -> Syntax Checkers -> Custom Globals 文本字段。看起来 CodeKit 使用自定义 JSHint 配置,并通过 .jshintrc in not supported 配置此刻。
关于javascript - 使用 soundcloud SDK 时未定义“SC”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30906134/