Добрый день. Возникла проблема с функцией $.load()
Вот код
function LoadPage(el) {
var url = $(el).attr("href");
var path;
if (/(\w){0,}\x2F([a-z0-9\x2E\x5F]){1,}.php(.*)/.test(url)) {
var dir = url.replace(/(.*)\x2F([a-z0-9\x2E\x5F]){1,}\x2Ephp(.*)/, "$1/inc/");
var file = url.replace(/(.*)\x2F([a-z0-9\x2E\x5F]+)\x2Ephp(.*)/, "$2.php");
var opt = url.replace(/(.*)\x2F([a-z0-9\x2E\x5F]){1,}\x2Ephp(.*)/, "$3");
path = url.replace(/(.*)\x2F([a-z0-9\x2E\x5F]{1,})\x2Ephp(.*)/, "$1/inc/$2.php$3");
//alert(dir+"\r\n"+file+"\r\n"+opt+"\r\n"+path);
} else path = "/inc/index.php";
alert(path);
$("div#content").load(path+" #js_inc",{'test':Math.random()});
//$("div#content").children("div#content").removeAttr("id");
return false;
}
Есть меню, состоящее из 2 ссылок:
<a href="/">Главная</a>
<a href="/error.php">Error</a>
И 2 страницы, соответственно:
index
<?php
session_start();
if (!isset($_CORE) || !is_a($_CORE, 'BSM_CORE')) $_CORE = new BSM_CORE();
if (!isset($_TMPL) || !is_a($_TMPL, 'BSM_TMPL')) $_TMPL = new BSM_TMPL("pages");
// Made this page
$_DATA['CONTENT'] = "Inc test";
// Return new page
header("Content-type: text/html; charset=utf-8");
echo $_TMPL->display_inc($_DATA);
?>
error
<?php
$_err = (isset($err)) ? intval($err) : 0;
var_dump($_err);
$error = '';
$_err_id = array (400=>"Не удалось обработать Ваш запрос. Проверьте правильность запроса или <a href=\"/\">Вернуться на главную</a>",
401=>"Требуется авторизация.",
403=>"Доступ запрещен.<br /> Вы попытались открыть файл, доступ к которому запрещен сервером.<br /><a href=\"/\">Вернуться на главную</a>",
404=>"Файл не найден.<br /> Вы запросили файл(каталог), который отсутствует на данном сайте или в данном каталоге.<br /><a href=\"/\">Вернуться на главную</a>",
1=>"Произошла ошибка подключения к БД.",
2=>"Произошла ошибка шаблонизатора.",
3=>"Произошла ошибка шаблонизатора.");
if (array_key_exists($_err, $_err_id)) {
$error = "Произошла ошибка $_err.<br />$_err_id[$_err]";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Строгий синтаксис XHTML -->
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- По данному адреcу расположен справочник по пространству имён XHTML -->
<head>
<title><?php echo ($error != '') ? "Произошла ошибка № $_err" : "Технические работы" ?></title>
<!-- title -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<style>
body{
background-color:#ffffff;
margin: 0 0 0 0;
padding:0 0 0 0;
}
/* Основные блоки */
#content_web{
width:350px;
margin: 0 auto;
margin-top:10px;
}
.content_error{
margin-top:100px;
text-align:center;
}
.content_error a{
text-decoration:none;
color:#009900;
}
.content_error a:hover{
text-decoration:underline;
}
</style>
</head>
<body>
<div id="js_inc">
<div class="content_error">
<?php echo ($error != '') ? $error : "На сайте проводятся технические работы. Приносим свои извинения. <br /><a href=\"/\">Проверить доступность сайта?</a>" ?>
</div>
</div>
</body>
</html>
В IE страницу error грузит нормально, а index ни в какую. В чем ошибся?
Если написать так:
function LoadPage(el) {
var url = $(el).attr("href");
var path;
if (/(\w){0,}\x2F([a-z0-9\x2E\x5F]){1,}.php(.*)/.test(url)) {
path = url.replace(/(.*)\x2F([a-z0-9\x2E\x5F]{1,})\x2Ephp(.*)/, "$1/inc/$2.php$3");
//alert(dir+"\r\n"+file+"\r\n"+opt+"\r\n"+path);
} else path = "/inc/index.php";
alert(path);
$("div#content").load(path+" #js_inc", function(data){alert(data);});
}
То алерт выдает страницу, но в div#content ничего не подставляется. Причем именно в IE.