Определить, когда ссылка нажата, открыть в новом фрейме - PullRequest
0 голосов
/ 04 октября 2009

Я хотел бы создать базовую перезапись URL с использованием фреймов.

У меня нет доступа к .htaccess, чтобы сделать mod_rewrite.

Есть ли способ использовать PHP, jQuery, JavaScript и т. Д., Чтобы определить, по какому URL-адресу был нажат и затем открыть URL-адрес в новом фрейме?

Пример: пользователь нажимает /index.php?12345, он открывается в рамочном окне /pages/12345/index.html, и если они нажимают /index.php?54321 URL открывается в рамочном окне /pages/54321/index.html

Ответы [ 5 ]

1 голос
/ 04 октября 2009

PHP-решение будет выглядеть примерно так:

if (!empty($_REQUEST)) {
    $page = array_pop($_REQUEST);
    if (is_numeric($page)) {
        header("Location: pages/$page/index.html");
        exit;
    }
}
1 голос
/ 04 октября 2009

Не думаю, что я действительно понимаю, что вы имеете в виду. Обычно перезапись URL работает так:
Пользователь нажимает на http://example.com/content/example
Который переписан на http://example.com/index.php?cat=content&page=example

Вы можете несколько подделать этот эффект, превратив свои ссылки в http://example.com/index.php/content/example, веб-сервер будет по-прежнему запрашивать страницу index.php, на которой вы можете затем прочитать часть после index.php (но перед строкой запроса) с

$_SERVER['PATH_INFO']

и затем проанализируйте это, чтобы получить то, что вам нужно.

PHP.net на $ _SERVER ['PATH_INFO']

Содержит любой предоставленный клиентом путь информация за фактическим сценарием имя файла, но предшествующий запросу строка, если имеется. Например, если текущий скрипт был доступен через URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, тогда $ _SERVER ['PATH_INFO'] будет содержат /some/stuff.

0 голосов
/ 04 октября 2009

Лучшее решение - использовать jquery, чтобы проверить, была ли ссылка посещена, а затем изменить цель ссылки на _blank.

Вы можете использовать плагин с этого сайта: текст ссылки и затем выполнить такой код:

 $('a').visited(function () {
  $(this).attr('target','_blank');
});

Я думаю, это то, что вы ищете.

0 голосов
/ 04 октября 2009

Такой jquery может помочь,

jQuery(function($){
  //this prevents all link elments' default behaviour 
  //when you click they won't navigate the page
  $("a").click(function(){
    //you get the links href
    var actual_url = $(this).attr("href");
    var new_url = "";
    //[write your code here for converting actual url to new one]
    //and open the new url in the frame you want
    window.parent.yourFrameName.location = new_url;
    //necessary for preventing default behaviour
    return false;
  });
});

Синан.

0 голосов
/ 04 октября 2009

Если я действительно понимаю, что вы хотите, я думаю, что это легко.

Когда пользователь щелкает, он вызывает функцию JQuery, которая отправляет содержимое ссылки на PHP с AJAX. После этого PHP анализирует ссылку, получает содержимое страницы (с помощью include ()) и отправляет его в JQuery через JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...