0
このようなクリック可能なギャラリー(http://www.aideffectiveness.org/busanhlf4/vimeo/php-example.php)を作成しようとVimeo APIを使いこなすようになりました。しかし、コードの一部をサイトの他の部分からコードを編成する方法として「script.js」ファイルに移動したとき、jsonコールバックは「embedVideo」関数が定義されていないと言っています。何か案は?機能が定義されていないOEmbed Vimeo API
"script.js" ファイルは、ページの下部に配置され、以下がありますされています
var NS = NS || NS;
NS = {
videoInit: function() {
var oEmbedUrl = 'http://vimeo.com/api/oembed.json';
var oEmbedCallback = 'embedVideo';
var videoid = "";
if(videoid == ''){
videoid = '23515961';
}
function embedVideo(video) {
var videoEmbedCode = video.html;
document.getElementById('embed').innerHTML = unescape(videoEmbedCode);
}
function init() {
loadScript(oEmbedUrl + '?url=http://vimeo.com/' + videoid + '&height=380&width=700&callback=' + oEmbedCallback);
}
function loadScript(url) {
var js = document.createElement('script');
js.setAttribute('src', url);
document.getElementsByTagName('head').item(0).appendChild(js);
}
init();
}
}
$(function() {
NS.videoInit();
});
HTML:
<div id="wrapper">
<div id="embed"></div>
</div>
あなたのAJAXコールバックに見えるのですですので
あなたは、適切な方法NSの
embedVideo
をすることによってこの問題を解決することができます未定義。しかしこれはうまくいきました:それをよりきれいにする方法はありますか? 'function embedVideo(video){ var videoEmbedCode = video.html; document.getElementById( '埋め込み')。innerHTML = unescape(videoEmbedCode); } NS = {...} – user906080私は単にembedVideoをNSのメソッドにします。あるいは、他のユーティリティオブジェクトにアタッチすることもできます。いずれにしても、Initの内部ではローカル関数として動作しません。 –
これは私が今持っているものです。 embedVideoがNSのメソッドである場合でも、それはまだ動作しません。 http://jsfiddle.net/Kwmtn/3/ – user906080