2009-10-04 5 views
0

Je souhaite créer une réécriture d'URL de base à l'aide de cadres. Je n'ai pas accès à .htaccess pour mod_rewrite.Détection lors d'un clic sur un lien, ouverture dans un nouveau cadre

Existe-t-il un moyen d'utiliser PHP, jQuery, JavaScript, etc. pour détecter l'URL qui a été cliquée, puis ouvrir l'URL dans un nouveau cadre?

Ex: utilisateur clique sur /index.php?12345 il ouvrira dans la fenêtre encadrée /pages/12345/index.html et s'ils cliquent sur /index.php?54321 URL ouvrira dans la fenêtre encadrée /pages/54321/index.html

+0

Je ne suis pas besoin de toutes les pages réécrites si quelque chose de vraiment de base fonctionnerait. c'est à dire. En PHP obtenir l'url sélectionnée si url = domain1 charger urlA elseif url = domain2 charger urlB –

Répondre

0

Si j'ai vraiment comprendre ce que vous voulez, je pense qu'il est facile .

Lorsque l'utilisateur clique dessus, il appelle une fonction JQuery qui envoie le contenu du lien à PHP avec AJAX. Après cela, PHP analyse le lien, récupère le contenu de la page (avec include()) et l'envoie à JQuery via JSON.

+0

pourriez-vous me donner un exemple de code? –

1

Je ne pense pas vraiment comprendre ce que vous voulez dire. Habituellement url rewrite fonctionne comme ceci:
utilisateur clique sur http://example.com/content/example
Quel est le réécrites http://example.com/index.php?cat=content&page=example

ce que vous pouvez un peu faux effet en faisant vos liens dans http://example.com/index.php/content/example le serveur web demanderez encore la page index.php, dans laquelle vous pouvez alors lire la partie après index.php (mais avant une chaîne de requête) avec

$_SERVER['PATH_INFO'] 

puis analyser que pour obtenir ce dont vous avez besoin.

PHP.net $ _SERVER [ 'de PATH_INFO']

Contient des informations client chemin fourni le script de suivi réel nom de fichier, mais qui précède la chaîne de requête , le cas échéant. Par exemple, si le script en cours a été accessible via l'URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, puis $ _SERVER [ 'PATH_INFO'] aurait contenir/some/stuff.

0

Un tel jquery pourrait aider,

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; 
    }); 
}); 

Sinan.

+0

Avez-vous un exemple de code de base pour convertir l'URL comme je l'ai mentionné pour php ci-dessus? –

0

La meilleure solution est d'utiliser jquery pour vérifier si le lien a été visité, puis de changer la cible du lien en _blank.

Vous pouvez utiliser le plugin de ce site: link text puis exécutez ce code:

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

Je pense qu'il est ce que vous recherchez.

1

Une solution PHP serait quelque chose le long de ces lignes:

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