簡體   English   中英

PHP & JS - 在頁面上附加 html 和腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM