[英]PHP & JS - append html and scripts on page
我正在使用 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。 這就是問題?
筆記:
我的問題與上面的問題大不相同: 在 AJAX 檢索的內部執行
如果您閱讀兩者,您會發現它們非常不同。 我已經讀過什么並注意到了。
解決了。 我不知道為什么,但似乎 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>
現在它起作用了。
我發現了問題:舊版本的 jQuery 偶然發現了它應該附加的 html 中的</script>
。 但是,如果您屏蔽斜線,它會起作用:
<\/script>
演示:
var result = '<p>Hello</p><script>function test() { return "hello!";} <\\/script>'; $(".pageContainer").html(result); console.log(test());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <div class="pageContainer"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.