用于在特定 div 上注入脚本的 ScriptInjector

ScriptInjector to inject script on spcific div

ScriptInjector 注入脚本以注入特定 div 的方法是什么,例如:

我想在特定的 div 中注入带有 src='http://ads.qadservice.com/t?id=123' 的脚本(例如 top-ads-large)。原因是能够在 GWT 入口点 onModuleLoad() 底部注入,这样它就不会阻止 GWT 应用程序加载。

<script type="text/javascript" language="javascript" src="app/app.nocache.js"></script>
<body>
    <div id="top-ads-placeholder" class="uk-hidden-small uk-hidden">
            <div id="top-ads-small" class="uk-hidden-small">
                <script type='text/javascript' src='http://ads.qadservice.com/t?id=123'></script>
            </div>
            <div id="top-ads-large" class="uk-hidden-medium uk-hidden-large uk-container-center uk-width-1-1">
                <script type='text/javascript' src='http://ads.qadservice.com/t?id=123'></script>
            </div>
        </div>
    </div>
</body

ScriptInjector class 旨在附加到给定 window 对象的头部(通常选择顶部 window ,但您可以配置它) .这是不可配置的,因为自定义它不会取得任何有意义的效果。

such that it won't be blocking the GWT app loading.

这没有任何意义。该应用程序 已经 加载,因此它的加载不会被它选择加载的脚本阻止。如果 GWT 应用程序 尚未 加载,您还不能使用 ScriptInjector 或任何其他 java/js classes。

如果您的广告脚本假设页面尚未完成加载(可能是因为它想要执行 document.write),那么 ScriptInjector 来不及了运行 它 - onModuleLoad 或更高版本中的任何内容都在下载文档和所有 JS 运行 之后很好。在那种情况下,您实际上必须使此脚本位于 html 页面本身(具有讽刺意味的是,它会阻止 GWT 应用程序从 运行ning...)。