使用锚点AJAX检索页面无法在IE中运行

时间:2014-04-05 15:01:08

标签: php jquery html ajax

我们几周前发布了一个网站,我们现在开始抱怨该网站在Internet Explorer 6-10中无法运行。

我正在使用jQuery版本:1.11.0

我们正在运行AJAX以使用锚点加载每个页面。例如。 www.site.com/#page2

我试图调试代码并查看它失败的地方,但我不知道出了什么问题。

人们遇到的问题很简单,页面无法加载。除页面调用之外的所有其他代码都有效。所以基本上页面都是空的。

这是代码的简化版本:

function retrieve_page(link, lang){

    event.preventDefault();

    var id = link;

    if(id){

        document.location = "#"+id;

    } else {

        document.location = "#hem";

    }

    if(window.location.hash.substring(1) != "undefined") {

        var page = window.location.hash.substring(1);

    } else {

        var page = "hem";

    }

    var content;

    var request = $.ajax({

        type: "GET",
        url: "ajax/retriever.php",
        data: { page:page },
        success: function(data) {

            content = data;

        }

    });

    request.done( function () {

        $('#page').html(content);

    });


}

这是ajax/retriever.php文件

<?php

    $page = $_GET["page"];
    $path = "../pages/".$page.".php";
    $config = "../core/config.php";

    if(!file_exists($path)){

        require_once $config;

        echo "<div id='no_page'><h1 style='display: block'>".$lang["ERROR"]."</h1><a href='index.php'><h2>".$lang["ERROR_RETURN"]."</h2></a></div>";
        exit;

    } else {

        require_once $config;
        require_once $path;
        exit;

    }

?>

AJAX函数调用是示例:

<a onclick="retrieve_page('page1', 'sv')">Page1</a>

提前致谢!

1 个答案:

答案 0 :(得分:0)

看不出我错过了什么。好吧,我只需删除event.preventDefault();

即可解决问题