繁体   English   中英

更新 Angular 中的 src="URL" 时注入的 CDN 脚本未再次执行

[英]Injected CDN script is not executing again on updating src="URL" in Angular

我正在使用 DOM 操作在 angular 应用程序中注入来自第三方 CDN 的样式和脚本。

<link id="mystyles" href="https://www.cdndomain.com/{language}/style.css">
<script id="myscript" src="https://www.cdndomain.com/{language}/app.js"></script>
 

它第一次完美执行,没有任何麻烦。 但是,我的网站是多语言的。 因此,在更改语言时,我会使用它们的 ID 来获取链接和脚本标签。 然后我尝试使用以下两种方法将“语言”参数从“EN”修改为“FR”,但它们都不起作用:

我获取了链接和脚本标签的 ID,并分别将其修改为“href”和“src”。

结果:“href 和 src 正在更新,但链接和脚本没有分别从新的 href 和新的 src 执行。它甚至没有从 CDN 下载新的脚本。”

我获取了链接和脚本标签的 ID,并从 DOM 中删除了这些元素,并通过 DOM 操作注入了链接和脚本元素。

结果:“与上述相同,新脚本未执行,但这次它从更新的 CDN src 下载了脚本。”

注意:“CDN 是Google CDN ,如果我首先修改 URL 并手动或使用“ window.location.relaod() ”刷新页面,这两种方法都有效。因此,在这种情况下,新的更新脚本将被执行。”

你能帮我解决这个问题吗,因为脚本在更新它的 src 时没有执行。

先谢谢了。

它工作正常,你检查它吗? 它确实改变了,但也许你在想,“嗯,为什么不下载这个修改过的脚本?”。 好吧,因为脚本标签已经渲染并且已经下载,所以你不能这样做。 通过添加新脚本标签可以做什么。

也许这将有助于如何动态更改脚本 src? . 此链接将更多地解释您的代码“不起作用”的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM