Maison > interface Web > js tutoriel > le corps du texte

Exemple de conversion d'un chemin relatif en chemin absolu à l'aide des connaissances javascript_Basic

WBOY
Libérer: 2016-05-16 16:55:41
original
1180 Les gens l'ont consulté

Ce qui est présenté ici, ce sont essentiellement deux méthodes, en créant du DOM ou en calculant via JavaScript :

1) Grâce à l'image nouvellement créée, après le test, une requête abandonnée sera envoyée, et IE6 ne la prend pas en charge. Changer la nouvelle image en document.createElement('IMG') est la même chose que le test peut ne pas aimer. cette solution;

Copier le code Le code est le suivant :

fonction getAbsoluteUrl(url){
var img = new Image();
img.src = url; //Définissez le chemin relatif sur Image et une requête sera envoyée
url = img.src; //Le chemin relatif est devenu absolu path
img.src = null; // Annuler la demande
return url;
>
getAbsoluteUrl("showroom/list");

2) Créer une ancre (lien) Cette méthode n'émettra aucune requête (la requête sera générée lors de l'adhésion au DOM), mais IE6 ne la supporte pas non plus

Copier le code Le code est le suivant :

/*expression rationnelle jslint : vrai, blanc : true, maxerr : 50, indentation : 2 */

function parseURI(url) {
var m = String(url).replace(/^s |s $/g, '').match (/^ ([^:/?#] :)?(//(?:[^:@]*(?::[^:@]*)?@)?(([^:/?#] *)( ?::(d*))?))?([^?#]*)(?[^#]*)?(#[sS]*)?/);
// autorité = '// 'user':' pass '@' hostname ':' port
return (m ? {
href : m[0] || '',
protocol : m[1] || '',
autorité : m[2] || '',
hôte : m[3] || '',
nom d'hôte : m[4] || m[5 ] || '',
chemin : m[6] || '',
recherche : m[7] ||
} : null);
}

function absolutizeURI(base, href) {// RFC 3986

function removeDotSegments(input) {
var output = [] ;
input.replace(/^(..?(/|$)) /, '')
.replace(//(.(/|$)) /g, '/')
.replace (//..$/, '/../')
.replace(//?[^/]*/g, function (p) {
if (p === ' /.. ') {
                output.pop(); replace(/^//, input.charAt(0) === '/' ? '/' : '');
}

href = parseURI(href || '');
base = parseURI(base || '');

return !href || !base null : (href.protocol || base.protocol)
(href.protocol || href.authority ? href.authority : base.authority)
removeDotSegments(href.protocol || href.authority || href.pathname.charAt(0) == = '/' ? href.pathname : (href.pathname ? ( (base.authority && !base.pathname ? '/' : '') base.pathname.slice(0, base.pathname.lastIndexOf('/') 1) href.pathname) : base.pathname))
(href.protocol || href.authority || href.pathname ? href.search : (href.search || base.search))
                  href. hash;
}



Comme notre produit est une page Web mobile, il ne prend plus en charge IE6, nous avons donc fini par utiliser la deuxième solution
;
On peut voir que lors de l'accès à toutes les images et ancres à l'aide de la méthode d'origine, des chemins absolus sont renvoyés. Si vous souhaitez renvoyer le chemin relatif d'origine, vous pouvez utiliser la méthode de requête DOM, telle que la méthode jQuery.attr(). :



Copier le code


Le code est le suivant :

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal