$.getScript(fileURL)
请在说“使用或”之前阅读情况$('body').append($('<script>', {type" 'text/javascript', src: fileURL}))
。
我正在尝试使用Amara Embedder链接到视频。通常,对于这么简单的任务,我不会同时使用 jQuery,但在这件事上我别无选择。
所以,我首先尝试了最简单的选项:
$(function() {
$.getScript('https://amara.org/embedder-iframe');
});
<div class="amara-embed" data-height="480px" data-width="854px" data-url="http://www.youtube.com/watch?v=5CKwCfLUwj4"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
这将失败并出现类似于以下内容的控制台条目:
GET https://domain.com/embedder-widget-iframe/?data=%7B%22hei…22url%22%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5CKwCfLUwj4%22%7D 404 (Not Found)
从示例中应该可以看出,这不是很好。问题在于,不是执行脚本并使用amara.org
域作为其基本 URL,而是使用$.getScript()
已执行的域执行脚本。
使用 JavaScript,创建SCRIPT
元素并将其附加到BODY
它以使其工作很简单。
window.onload = (function() {
var link = document.createElement('script');
link.type = 'text/javascript';
link.src = 'https://amara.org/embedder-iframe';
document.getElementsByTagName('body')[0].appendChild(link);
})();
<div class="amara-embed" data-height="480px" data-width="854px" data-url="http://www.youtube.com/watch?v=5CKwCfLUwj4"></div>
这成功了,因为它从域执行GET
s :amara.org
https://amara.org/embedder-widget-iframe/?data=%7B%22height%22%3A%22480px%22%2C%22width%22%3A%22854px%22%2C%22url%22%3A%22http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5CKwCfLUwj4%22%7D
现在,我尝试了 jQuery 的变体,例如$('body').append($('<script>', {type" 'text/javascript', src: 'https://amara.org/embedder-iframe'}))
并$('<script>', {type" 'text/javascript', src: 'https://amara.org/embedder-iframe'}).appendTo('body')
得到相同的结果。
我一直无法找到将其标识为预期功能的文档,也无法找到如何解决它。