document.write在Youtube videobar的javascript中表现异常
Youtube的视频条已经过时了。谷歌仍在为js提供服务,但其网站上的文档和链接已被删除。你可以在sicmaui.com右侧的youtube标签上看到一个运行的例子 它当前正在使用html上的脚本标记加载document.write在Youtube videobar的javascript中表现异常,javascript,asynchronous,youtube-javascript-api,Javascript,Asynchronous,Youtube Javascript Api,Youtube的视频条已经过时了。谷歌仍在为js提供服务,但其网站上的文档和链接已被删除。你可以在sicmaui.com右侧的youtube标签上看到一个运行的例子 它当前正在使用html上的脚本标记加载 <script src="http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-vbw" type="text/javascript"></script> GSearch.setOnLoad
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-vbw" type="text/javascript"></script>
GSearch.setOnLoadCallback(somefunction); //works
这会在“n”等于document时进行调用
n.write('<script src="' + b + '" type="text/javascript"><\/script>')
现在理想情况下,这个js应该用这个脚本覆盖整个页面内容。但出于某种原因,它没有这样做,这让我发疯
无论如何,我的主要目标是异步加载此文件。您应该尝试使用;它处理所有您不想涉及的混乱:添加async属性,定义readystatechange和load事件处理程序,避免内存泄漏
编辑:
至于您的根本问题:我认为,如果异步加载该脚本,就无法使其正常工作。document.write本质上是同步的。请看这个相关问题:我也试过了。还是一样。我似乎不明白为什么n.write document.write inside在谷歌的代码中没有发挥应有的作用;看我编辑的答案。啊……这就解释了奇怪的行为!谢谢朱利安帮我解决了这个问题
google.loader.writeLoadTag("script", google.loader.ServiceBase + "/api/search/1.0/8c68537a8c14de310f268bd7f81c9c67/default+en.I.js", false);
n.write('<script src="' + b + '" type="text/javascript"><\/script>')