0
我有以下基本脚本,使api调用vimeo并将嵌入插入到div#embed。我遇到了麻烦,无论如何抓住另一个div #embedthis的文本并从中组装api调用。javascript - 插入文本从一个div到api调用嵌入
如果放在<body>
中,下面的代码可以工作。不过,我想正确设置它,因为我希望能够动态更改#embedthis的内容,更新显示的嵌入。任何帮助非常感谢!
脚本:
// URL to get embed
var videoUrl = document.getElementById('embedthis').innerHTML;
// oEmbed endpoint for Vimeo using JSON
var endpoint = 'http://www.vimeo.com/api/oembed.json';
// Tell Vimeo what function to call
var callback = 'embedVideo';
// Put together the URL
var url = endpoint + '?url=' + encodeURIComponent(videoUrl) + '&callback=' + callback + '&width=640';
// put video on page
function embedVideo(video) {
document.getElementById('embed').innerHTML = unescape(video.html);
}
// load data from Vimeo
function MakeEmbed() {
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', url);
document.getElementsByTagName('head').item(0).appendChild(js);
};
window.onload = MakeEmbed;
观点:
<div id="embed">
...
</div>
<div id="embedthis">http://vimeo.com/24453255</div>
有了这个,我得到document.getElementById('embedthis')" is null
,可能是因为#embedthis是尚未加载。
我认为你是对的,我需要那不找embedthis它已经准备好之前的功能。我只是编辑了我的帖子,其代码符合预期,如果我将它放在
的底部进行测试。我只是无法弄清楚如何正确地构造函数,以便只在加载DOM时查找“embedthis”,同时确保所有其他脚本也可以访问该变量。 – tuddy@tuddy查看我的编辑示例。 – NobRuked
不错,是的,这就是我所做的很多。只有我能够在任何原因(?)下将var url保留在主函数中,现在我只需通过html中的按钮进行onclick调用即可触发该操作。现在运作良好。谢谢! – tuddy