我刚开始接触 JavaScript,在 SO 上还找不到像这样的确切场景,所以我要试试运气。我在一个外部 JS 文件中有两个函数可以在我们的网站上创建视频源:
function getVideos() {
//gets a list of videos
}
//callback function automatically called by getVideos()
function response(jsonData) { //can't change this line
var resp = document.getElementById("resp"); //can change this line and any subsequent lines
//parses data and populates resp
}
然后,从 HTML 端,我们只需调用 getVideos() 即可创建并填充视频源。
但是,我希望能够将我想要的任何元素 ID 传递给 response(),以便我们可以在同一页面的不同位置创建多个视频源。问题是我无法更改 response() 的函数声明以包含另一个参数。或者至少我没有被托管我们视频的公司所引导相信我可以。
我试过用 getVideos() 包装 response() 并从那里传递一个元素 ID,但是没有调用 response(),我能想到的唯一解决方案是将元素 ID 存储在全局变量中,我知道这在 JavaScript 中通常是一个禁忌。
我的问题是:我只是硬着头皮使用全局变量,还是有其他方法?
有关更多信息,这里是我们现在的 JS 代码(带有闭包):http ://www.thebearrocks.com/Other/js/videoFeed/createVideoFeed.js 这里是关于 response() 的教程以下来自我们视频的主持人:http: //support.brightcove.com/en/video-cloud/docs/making-media-api-calls-dynamic-script-tags