重复使用Javascript注入来进行YouTube API调用?

时间:2011-03-27 20:28:37

标签: javascript dom youtube-api code-injection

我正在创建一个使用YouTube API的网页。我希望每次用户采取某些操作并使用调用结果更新页内元素时,都可以启动对AJAP的AJAX样式调用。 YouTube的文档建议使用Javascript注入来解决从我的网页向外部域(gdata.youtube.com)进行AJAX调用所涉及的跨域权限问题。例如:

<script 
    type="text/javascript" 
    src="http://gdata.youtube.com/feeds/users/GoogleDevelopers/uploads?alt=json-in-script&format=5&callback=showMyVideos">
</script>

放置在HTML BODY中的这个代码段从“GoogleDevelopers”频道发出视频Feed请求,其中“callback”参数在调用返回时调用showMyVideos()。 showMyVideos(),此处未显示且任意命名,使用DOM调用来更新带有调用结果的命名DIV。

我想做同样的操作,除了动态而不是如上所示的静态。例如,我见过这样的代码:

var s = document.createElement('script');
    s.type = "text/javascript";
    s.src = "http://gdata.youtube.com/feeds/users/GoogleDevelopers/uploads?alt=json-in-script&format=5&callback=showMyVideos"
    var head = document.getElementsByTagName('head')[0];
    head.appendChild(s);

我担心的是,如果我使用这种方法,因为我将进行许多AJAX调用,我将在网页DOM树中积累越来越多动态生成的Javascript DOM元素,我担心可能对浏览器产生什么后果或其他任何东西。

有没有办法在这种风格下进行Javascript注入而不会混淆HEAD元素大量的Javascript元素?一个简洁的代码示例将不胜感激。

- roschler

1 个答案:

答案 0 :(得分:1)

嗯,不那么难,通过删除脚本元素来清理数据之后。