2

我将页面加载到 div 中,我的问题是我无法在 page1.php 中执行 javascript 代码。当我将页面加载到 div 时,如何执行代码。谢谢您的帮助。

这是我的代码

索引.php

<script language="JavaScript" type="text/javascript">
function swapContent(cv) {
    $("#content").html('<img  class="loader" src="images/loader.gif"/>').show();
    var url = "load.php";
    $.post(url, {contentVar: cv} ,function(data) {
       $("#content").html(data).show();
    });

}
</script>

<a href="#" onClick="return false" onmousedown="javascript:swapContent('page1');"> Button1 </a>
<a href="#" onClick="return false" onmousedown="javascript:swapContent('page2');"> Button2 </a>


<div id="content"></div>

加载.php

<?php 
if(isset($_GET['contentVar']))
{
$contentVar = $_GET['contentVar'];  
    }else{
    $contentVar = $_POST['contentVar']; }
if ($contentVar == "page1") {
   include("page1.php");
} else if ($contentVar == "page2") {
   include("page2.php");
}

page1.php的示例

<script type="text/javascript" src="nicEdit.js"></script>
<script type="text/javascript">
    bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>
<textarea name="message" id="message" cols="45" rows="5"></textarea>
4

1 回答 1

2

从 Ajax 返回的数据被视为纯文本,因此默认情况下不会执行其中的任何 Javascript。见这篇文章。

尝试使用 .load() 而不是 $.post() :

function swapContent(cv) {
    $("#content").html('<img  class="loader" src="images/loader.gif"/>').show();
    var url = "load.php";

    $("#content").load(url, {contentVar: cv});
}
于 2013-02-17T19:04:59.330 回答