0

我有一个第三方 JavaScript 库的脚本,它需要动态注入令牌。

我被告知将下面的脚本包含在我的 html 的头部。我需要替换 {your_token} 才能使其正常工作。但是,此令牌仅在运行时可用,因此我需要在运行时将此脚本注入应用程序的标头(应用程序代码的 init)

<script>(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel={your_token}...

用正确的令牌替换 your_token 并将此脚本注入应用程序的标头的最佳方法是什么?

4

2 回答 2

2

正如凯西所问的,这取决于这个脚本块来自哪里?

  1. 后端更换

    如果您使用任何后端模板引擎,您可能有机会将该令牌替换为您手头的令牌。所以输出将是包含脚本所需的真实令牌的脚本。

  2. 前端更换

    如果你在前面使用了一些模板,例如使用车把模板(其他模板引擎的工作原理几乎相同)<script type="text/x-handlebars-template">your third party js code <token here></script>,你可以在生成 dom 元素时替换令牌。

对我来说,我更喜欢在后端执行此操作。

于 2013-07-14T01:03:53.570 回答
1

假设“此令牌仅在运行时可用”意味着“来自onModuleLoad”(无论出于何种原因),那么您可以将脚本作为 aString在您的 GWT 应用程序中(您可能希望将 aClientBundle与 a 中的脚本一起使用TextResource,或者只是String代码中的常量),替换{your_token}String#replace,然后将生成的脚本注入ScriptInjector.fromString.

如果可以的话,请使用Mike Li 提出的带有动态主机页面的“后端替换” 。

于 2013-07-14T09:20:36.243 回答