簡體   English   中英

通過JavaScript動態在標頭或HTML中包含腳本元素

[英]Dynamically include script element in header or HTML by JavaScript

我有一個第三方JavaScript庫的腳本,該腳本需要動態注入令牌。

有人告訴我在我的html頭中包含以下腳本。 我需要替換{your_token}才能使其正常工作。 但是,此令牌僅在運行時可用,因此我需要在運行時將此腳本注入到我的應用程序的標頭中(應用程序代碼的初始化)

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

用正確的令牌替換your_token並將此腳本注入應用程序標頭的最佳方法是什么?

正如Casey所問,這取決於此腳本塊來自何處?

  1. 后端更換

    如果您使用任何后端模板引擎,則您可能有機會將該令牌替換為您擁有的令牌。 因此輸出將是腳本,其中包含腳本所需的真實令牌。

  2. 前端更換

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

對我來說,我更喜歡在后端執行此操作。

假設“此令牌僅在運行時可用”表示“來自onModuleLoad ”(無論出於何種原因),那么您可以在GWT應用中將腳本作為String使用(您可能希望將ClientBundleTextResource的腳本一起使用,或代碼中的簡單String常量),將{your_token} String#replaceString#replace ,然后將結果腳本注入ScriptInjector.fromString

雖然可以,但可以使用Mike Li提議的 “后端替換” 動態主機頁面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM