[英]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所問,這取決於此腳本塊來自何處?
后端更換
如果您使用任何后端模板引擎,則您可能有機會將該令牌替換為您擁有的令牌。 因此輸出將是腳本,其中包含腳本所需的真實令牌。
前端更換
如果您在前面使用一些模板,例如使用把手模板(其他模板引擎的工作原理幾乎相同) <script type="text/x-handlebars-template">your third party js code <token here></script>
,您可以在生成dom元素時替換令牌。
對我來說,我更喜歡在后端執行此操作。
假設“此令牌僅在運行時可用”表示“來自onModuleLoad
”(無論出於何種原因),那么您可以在GWT應用中將腳本作為String
使用(您可能希望將ClientBundle
與TextResource
的腳本一起使用,或代碼中的簡單String
常量),將{your_token}
String#replace
為String#replace
,然后將結果腳本注入ScriptInjector.fromString
。
雖然可以,但可以使用Mike Li提議的 “后端替換” 和 動態主機頁面 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.