将带有document.write的外部JavaScript文件加载到AngularJS应用程序中

时间:2015-01-02 10:35:41

标签: javascript angularjs document.write

我有这个外部JavaScript文件(广告文件),其中包含document.write()。我尝试使用$ http加载它,然后将其注入document.createElement,但广告服务器不支持此方法; $ http.get。

我在脚本中尝试过ng-include,但没有工作。

我需要在文件中加载脚本,然后运行脚本。我该怎么做?

<script ng-src=""></script>也不起作用。它不运行脚本。

感谢。

3 个答案:

答案 0 :(得分:1)

如果你正在使用jQuery(它听起来像你),那就有一个method

$.getScript("http://my/script/url.js");

答案 1 :(得分:1)

我最终得到了这条指令 - 由我的朋友丹尼斯帮助制作 - 在我的情况下有效。希望它可以帮助别人。

(function() {
    'use strict';

    angular
        .module('app')
        .directive('emediateScript', emediateScript);

    /* @ngInject */
    function emediateScript(Ad, $http) {
        var directive = {
            link: link,
            restrict: 'E',
            scope: {
                ad: '=ad',
            }
        };

        return directive;

        function link(scope, element, attrs){

            var _el = angular.element(element);

            var url = 'http://www.http.com';

            var request = {
                method: 'GET',
                url: url,
                headers: {
                    'X-Authentication': undefined
                }
            };

            if (url) {
                $http(request).then(function(response) {
                    var html = response.data.substr(16);
                    html = html.substring(0, html.length - 4);
                    _el.html(html);
                });
            }

        };
    };
})();

HTML就是;

<emediate-script></emediate-script>

答案 2 :(得分:0)

为什么不简单地使用jqLit​​e创建<script>标记?

$('body').append('<script type="application/javascript" src="http://localhost/test.js"></script>');

它似乎与我的测试文件完美配合。