存储可共享的嵌入式 JavaScript 以供以后使用

Storing shareable embeded javascript for use later

本文关键字:JavaScript 共享 嵌入式 存储      更新时间:2023-09-26

我遇到了一些嵌入式JavaScript,例如

<script src="http://player.ooyala.com/player.js?embedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym&deepLinkEmbedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym"></script>

想知道我如何动态地执行它。原因是,我希望能够将代码保存在数据库中,然后稍后即时执行。

我已经尝试在 url 中使用 $.get 并对响应进行评估,但没有运气。

如果这有助于解决方案,我使用 jQuery。

我该怎么做呢?谢谢。

您正在寻找$.getScript("http://player.ooyala.com/player.js?embedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym&deepLinkEmbedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym") .

请注意,如果脚本使用 document.write ,这是不可能的。

您可以使用 jquery 将整个字符串附加到正文中

编辑:必须转义一些字符

$("body").append(''<script src="http://player.ooyala.com/player.js?embedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym&deepLinkEmbedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym"'>'<'/script'>');​

您可以使用: $.getScript("http://player.ooyala.com/player.js?embedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym&deepLinkEmbedCode=5oZDBoMzreLfI78xe1sCSLDmQQFyhXym&playerContainerId=myplayer")

请注意playerContainerId=myplayer部分。

Ooyala 有一个 playerContainerId 参数,如果你想将播放器添加为div 的 innerHtml 而不是 document.write()。

http://support.ooyala.com/developers/documentation/api/player_examples_qpass.html

如果它支持 CORS,你可以请求它,然后使用 jQuery 的$.globalEval()来评估响应 - 它在 script 元素中执行(从内存中)。

或者,在加载时删除script元素,然后在要再次使用它时注入它。