检测单击链接时,在新框架中打开

时间:2009-10-04 15:27:21

标签: php javascript jquery

我想使用框架创建基本的URL重写。

我无法.htaccess访问mod_rewrite

有没有办法使用PHP,jQuery,JavaScript等来检测点击了哪个URL,然后在新框架中打开URL?

Ex:用户点击/index.php?12345它会在框架窗口/pages/12345/index.html中打开,如果他们点击/index.php?54321,则会在框架窗口中打开{{1 }}

5 个答案:

答案 0 :(得分:1)

我认为我不明白你的意思。通常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 on $ _SERVER ['PATH_INFO']

  

包含任何客户提供的路径名   跟踪实际脚本的信息   文件名但在查询之前   字符串,如果有的话。例如,如果   当前脚本是通过访问的   URL   http://www.example.com/php/path_info.php/some/stuff?foo=bar,   然后$ _SERVER ['PATH_INFO']会   包含/某些/东西。

答案 1 :(得分:1)

PHP解决方案将是这样的:

if (!empty($_REQUEST)) {
    $page = array_pop($_REQUEST);
    if (is_numeric($page)) {
        header("Location: pages/$page/index.html");
        exit;
    }
}

答案 2 :(得分:0)

如果我真的明白你想要什么,我认为这很容易。

当用户点击它时,调用一个JQuery函数,该函数使用AJAX将链接的内容发送到PHP。之后,PHP分析链接,获取页面内容(使用include())并通过JSON将其发送到JQuery。

答案 3 :(得分:0)

这样的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;
  });
});

思南。

答案 4 :(得分:0)

最佳解决方案是使用jquery检查是否访问了链接,然后将链接的目标更改为_blank。

您可以使用此网站的插件: link text然后执行此类代码:

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

我认为这就是你要找的东西。