php将页面加载到div中,javascript无法正常工作

时间:2010-07-21 14:50:38

标签: php javascript ajax

我正在使用ajax将页面加载到div中 页面加载正常 但我不能运行PHP和JavaScript 在那个加载的页面

在服务器中我正在加载这样的页面

file_get_contents('../' . $PAGE_URL);

在浏览器中我正在设置div的内容 使用

eval("var r = " + response.responseText);

并为该div设置innerHTML 检索信息 但是当我得到新的内页 没有php或java脚本正常工作

是假设是那样的?

3 个答案:

答案 0 :(得分:2)

好吧,php不会起作用我认为因为你处理它的方式,它只是文本。我建议使用像include('../' . $PAGE_URL);这样的东西来解析php。   javascript问题可能与您在div中加载<html> <body> <head>标签这一事实有关。我不确定当您这样做时会发生什么,但它不应该正常工作。尝试使用某种类型的<frame>代码。

答案 1 :(得分:1)

为了让你的javascript正确执行,你必须等到浏览器完成加载页面。

此活动名为onload()。您的代码应该在此事件上执行。

答案 2 :(得分:0)

<?php
    $file = false;

    if(isset($_GET['load'] && is_string($_GET['load'])) {
        $tmp = stripclashes($_GET['load']);
        $tmp = str_replace(".","",$tmp);

        $file = $tmp . '.php';
    }

    if($file != false && file_exists($file) && is_readable($file)) {
        require_once $file;
    }

?>

通过file.php调用?load = test

处理PHP文件,只要你从文件中吐出HTML

target = document.getElementById('page');    
target.innerHTML = response.responseText;

现在,我相当确定其中一部分是不安全的,你可以拥有允许的白名单。理想情况下,它应该在文件的特定目录中查找。老实说,我不太确定直接将responseText转发回DIV,安全性明智,因为XSS已经成熟。但这是一天的结束,我没有在那个上面查找任何内容。请注意,如果没有对此进行任何检查,您可以使用file_get_contents将用户定向到第三方站点,这将是非常糟糕的事情。您可以在PHP中评估一个file_get_contents请求,其中......很好,非常非常糟糕。例如,尝试

<?php
     echo file_get_contents("http://www.google.com");
?>

但是我担心我必须在这里问一下,你为什么这样做呢?这似乎是实现超链接的一种非常迂回的方式。

这是用于AJAX的AJAX吗?

相关问题