我正在使用ajax调用将MVC局部视图与一些样式表和脚本文件附加到我的php页面。
但是,它不附加de <script>
标记。我已经在网络上检查了我的HTTP请求,它确实带来了这些标签。
我的代码:
$.ajax({
type: 'POST',
url: 'http://localhost:63322/MyController/MyAction', //external url project
data: JSON.stringify(parameters),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: true,
crossDomain: true,
processdata: true,
headers: {
"Access-Control-Allow-Origin" : "*",
"Access-Control-Allow-Headers": "*"
},
success: function(result){
$(".pageContainer").html(result);
},
error: function(er){ alert('Error'); }
});
关于ajax成功函数,我已经尝试过了:
$(".pageContainer").empty().append(result)
<head>
,如下所示:var elems = $(result); var scripts = $.grep(elems, function(e){ try{ return e.tagName.toLowerCase() == "script"; }catch(er){ return false; } }); var remainElems = $.grep(elems, function(e){ try{ return e.tagName.toLowerCase() != "script"; }catch(er){ return false; } }); $.each(scripts, function(){ $('head')[0].appendChild(this); }); $(".pageContainer").append(remainElems);
在添加setTimeout(function(){ $(".pageContainer").html(result); }, 1000);
将<script>
代码更改为<link type="text/javascript" src="http://someurl.com" rel="tag"/>
并附加但代码未执行
但没有任何作用。
有什么问题?我缺少什么?
我的PHP页面使用jquery-1.8.3和jquery-ui-1.9.2.custom。这是问题吗?
注意:
我的问题与以下内容有很大不同:Executing inside retrieved by AJAX
如果您同时阅读,您会发现它们非常不同。我已经知道了什么,并注意到了。
答案 0 :(得分:0)
解决。我不知道为什么,但似乎jquery-1.8.3不会动态地将<script>
标签插入到html代码中。
我改变了
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
到
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
现在可行。
答案 1 :(得分:-1)
我发现了问题:旧版本的jQuery在它应该追加的html中偶然发现</script>
。但是,如果你屏蔽了斜杠,那么它可以工作:
<\/script>
样本:
var result = '<p>Hello</p><script>function test() { return "hello!";} <\/script>';
$(".pageContainer").html(result);
console.log(test());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="pageContainer"></div>
&#13;