在div中加载ajax后运行javascript代码

时间:2012-01-06 13:39:36

标签: php javascript ajax jquery

我的ajax代码运行得很好,但我想在我的请求文件中添加javascript。

我的代码是:

$('#result').load('code.php');

运行良好,但在code.php中,我将此代码<script>alert('hi');</script>放入,但不会显示错误消息或警告。

注意:我需要在code.php中编写javascript代码。

出于某种原因,我需要在code.php

中运行javascript

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

尝试:

$('#result').load('code.php', function() { alert("hi!"); });

现在,问题是从PHP代码返回的HTML中的内联<script>块应该运行。如果它没有运行,我会检查以确保返回的HTML不会以某种方式损坏。您可以使用浏览器调试工具从ajax调用中检查返回正文。

答案 1 :(得分:0)

我不知道为什么它不适合你,但如果它没有看我的答案

我认为这应该有效:

$("body").load("code.php", function(data) {
    data
        .replace(/\r|\n|\t/g, "")
        .replace(
            /<script.*?>.*?<\/script>/gi, 
            function(input) {
                $("script:first").prepend(input);
            }
        );
});

如果没有试试这个:

$("body").load("code.php", function(data) {
    data = data
        .replace(/\r|\n|\t/g, "")
        .replace(
            /<script(\s.*?(src="(.*?)".*?)?)?>(.*?)<\/script>/gi, 
            function(input, match1, match2, match3, match4, match5) {
                if (match3) {
                    $("script:first").prepend(input);
                } else if (match5) {
                    eval(match5);
                }
            }
        );
});

答案 2 :(得分:-1)

在你的php中尝试这个脚本:

<script type="text/javascript" language="javascript">alert('hi');</script>

设置类型和语言

编辑:

我的档案

我的文件设置就像这样

的test.html

<html>
<header>
<title>test</title>
<script type='text/javascript' src='jquery-1.7.1.min.js'></script>
<script type='text/javascript' src='test.js'></script>
</header>
<body>
<div id="result">adasd</div>
</body>
</html>

test.js

$(document).ready(function(){
     $("#result").load("test.php");
});

test.php的

<script type="text/javascript" language="javascript">alert('hi');</script>
<?php
    echo 'test';
?>

也许这有帮助吗?