使用WebMethod返回脚本引用不会被执行

时间:2011-12-12 13:14:01

标签: jquery ajax

如果我尝试使用WebMethod返回包含脚本引用的HTML代码,如

   <script src="js/components/MyJS.js" id="testScript" type="text/javascript"></script>

使用HTML返回的所有内容都将其绑定到范围。

问题:

此脚本不会在Safari中执行,而是所有其他脚本。

我尝试对整个html进行硬编码,然后执行,但如果我使用AJAX将完整的html作为字符串然后将其绑定到某个html标记,则不会执行。

获取html的代码:

var control = this;

    $.ajax({
        type: "POST",
        url: opts.url,
        data: "{control_name : '" + opts.control_name + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",

        cache: false,
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
        },


        success: function (msg) {

            control.html(msg.d);

        }
    });

感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

使用jQuery的getScript代替:http://api.jquery.com/jQuery.getScript/

类似的东西:

    success: function (msg) {

        $.getScript(msg.d);

    }

你在哪里WebMethod只返回脚本文件的路径。

答案 1 :(得分:0)

该错误是因为Jquery库。

如果我尝试使用缩小版本,它不起作用,但完整版本工作。这似乎太奇怪了。

答案 2 :(得分:0)

您可能需要在执行请求的html页面中指定一个字符集。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />