脚本注入器在特定div上注入脚本

时间:2015-04-20 12:32:31

标签: javascript gwt

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

我想在特定div中注入一个src='http://ads.qadservice.com/t?id=123'的脚本(例如top-ads-large)。原因是能够在GWT EntryPoint 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

1 个答案:

答案 0 :(得分:1)

ScriptInjector类旨在附加到给定window对象的头部(通常选择顶部窗口,但您可以配置它)。这是不可配置的,因为定制它不会实现任何有意义的事情。

  

这样它就不会阻止GWT应用加载。

这没有任何意义。该应用已加载,因此其选择加载的脚本无法阻止其加载。如果GWT app 尚未加载,则您无法使用ScriptInjector或任何其他java / js类。

如果您的广告脚本假设该页面尚未完成加载(可能是因为它想要执行document.write),那么ScriptInjector为时已晚,无法运行它 - 在下载文档并运行所有JS之后onModuleLoad或更高版本。在这种情况下,你必须真正使这个脚本在html页面本身(具有讽刺意味的是,它会阻止GWT应用程序运行......)。