2

我的问题是我无法动态创建<script>. 有没有人有办法解决这个问题?我认为这是因为我正在尝试做一些 XML 最初无法做到的事情。我想知道我的 XML 是否需要更改,也许我需要在某个地方使用 html 调用,而不是感谢您的帮助。

$(document).ready(function(){
    $.get('js.xml', function(data){

        $(data).find('info').each(function(){

            var $info = $(this);
            var links = $info.find("scp");


            var html = '<script type="text/javascript" src="' + links + '"></script>';

            $('body').append($(html));

        });

    });

});

---------------------!!添加了 JSFIDDLE -------------------------------

提琴手

4

4 回答 4

1

尝试使用$.getScript而不是将其附加到 DOM,例如:

$(document).ready(function(){
    $.get('js.xml', function(data){

        $(data).find('info').each(function(){

            var $info = $(this);
            var links = $info.find("scp");


            $.getScript(link);

        });

    });

});

您的 xml 文件似乎包含:

<location>
<info>
<scp>
<script type="text/javascript" src="https://www.printersmall.com/jqueryui/1.8.17/jquery.cookie.js"></script>
</scp>
</info>
</location>

你的 xml 文件应该是这样的:

<location>
<info>
<scp>
    www.printersmall.com/jqueryui/1.8.17/jquery.cookie.js
</scp>
</info>
</location>
于 2012-11-19T17:12:03.307 回答
0

links是一个 jQuery 对象,如果 scp 的内容是脚本源,那么你需要使用.text()它来获取它。

var links = $info.find("scp").text();
于 2012-11-19T17:13:02.180 回答
0

您不需要动态创建脚本标签。您只需要注入您的依赖项。我会推荐一个像 angular 这样的框架,但 getScript 也适用于 jQuery。将 getScript 之类的东西与依赖注入一起使用的问题在于,您的代码库最终不会具有良好的结构和模块化。您最终会得到紧密耦合的代码,这将导致长期问题。我建议使用 AngularJS 之类的东西来鼓励松散耦合。当您构建非常动态的软件时,这是一个大问题。

于 2012-11-19T18:40:08.603 回答
0

我不是专家,但我认为不data一样$(data)

于 2012-11-19T17:10:50.137 回答