GVKun编程网logo

解析JavaScript中的相对URL(javascript相对路径)

12

对于解析JavaScript中的相对URL感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍javascript相对路径,并为您提供关于flash–Actionscript3中的相对URL、jav

对于解析JavaScript中的相对URL感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍javascript相对路径,并为您提供关于flash – Actionscript 3中的相对URL、javascript – 具有相对url的window.location、javascript-如何从请求字符串的参数值中提取相对URL?、Javascript中的几种URL编码方法比较_javascript技巧的有用信息。

本文目录一览:

解析JavaScript中的相对URL(javascript相对路径)

解析JavaScript中的相对URL(javascript相对路径)

我正在构建一个JS库,它需要查看form [action]和[href]值并将它们解析为绝对URL.

例如,我在http://a/b/c/d;p?q并且遇到href值“../g”(假设没有< base>元素).由此产生的绝对值为:http://a/b/g.

是否有一个JS库已经这样做了?我不得不相信.

有关所需内容的更多信息,规范:
http://tools.ietf.org/html/rfc3986#section-5.4

解决方法

事实证明,A元素的.href属性(不是.getAttribute(‘href’),但.href)返回已解析(绝对)的URL.

flash – Actionscript 3中的相对URL

flash – Actionscript 3中的相对URL

我有一个使用Actionscript 3的flash电影,其中包含一些打开新页面链接的按钮.这是我重定向到新页面的代码:

myButton.addEventListener(MouseEvent.CLICK,function(e:MounseEvent) {
    var request:URLRequest = new URLRequest(''http://www.example.com/page2.html'');
    navigatetoURL(request,"_top");
});

它在我的生产服务器上运行良好,包含域名的完整URL,但当我将其更改为:

var request:URLRequest = new URLRequest(''page2.html'');

它不再适用于生产.我在这里错过了什么?我不想将整个URL编码到电影中.

解决方法

URLRequests是相对于包含它们的HTML文件(SWF在哪里无关紧要),因此您需要考虑到这一点.
您可以设置EMbed / OBJECT的可选属性来更改此行为,请参见此处:

base – . or [base directory] or [URL]. Specifies the base directory or
URL used to resolve all relative path
statements in the Flash Player movie.
This attribute is helpful when your
Flash Player movies are kept in a
different directory from your other
files.

http://kb2.adobe.com/cps/127/tn_12701.html

编辑:此外,尽量避免使用相对文件的绝对URL,因为您可能会收到沙箱错误,例如,加载没有“www.”的网络…

javascript – 具有相对url的window.location

javascript – 具有相对url的window.location

我试图使用window.location重定向到相对URL

这个变量

var redirect = $(this).attr('title');

有这个价值

../../000_Movies/_assets/playlist.html

这不会重定向

window.location = redirect;

解决方法:

如果要重定向到相关页面,则应使用:

 window.location.href = "../../000_Movies/_assets/playlist.html";

javascript-如何从请求字符串的参数值中提取相对URL?

javascript-如何从请求字符串的参数值中提取相对URL?

我有一个请求url / string var like

http://ip_or_url:4773/image_renderer.service?action=resize&from_format=png&from_url=http://ip_or_url:4773/my_file.user.file&to_format=jpg&w=1920&h=1200` 

看起来非常可怕.我想知道如何从中提取以下参数对,然后从该对值my_file.user.file中提取相对file_url

from_url=http://195.19.243.13:4773/my_file.user.file ?

解决方法:

使用纯JavaScript.它将返回键/值对的数组.

function getUrlParts(url){
    // url contains your data.
    var qs = url.indexOf("?");
    if(qs==-1) return [];
    var fr = url.indexOf("#");
    var q="";
    q  = (fr==-1)? url.substr(qs+1) : url.substr(qs+1, fr-qs-1);
    var parts=q.split("&");
    var vars={};
    for(var i=0;i<parts.length; i++){
        var p = parts[i].split("=");
        vars[unescape(p[0])]= p[1] ? unescape(p[1]):"";
    }
    // vars contain all the variables in an array.
    return vars;
}

让我知道您的测试用例是否失败.

Javascript中的几种URL编码方法比较_javascript技巧

Javascript中的几种URL编码方法比较_javascript技巧

javascript中存在几种对url字符串进行编码的方法:escape(),encodeuri(),以及encodeuricomponent()。这几种编码所起的作用各不相同。

escape() 方法:

    采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。

不会被此方法编码的字符: @ * / +

encodeURI() 方法:

立即学习“Java免费学习笔记(深入)”;

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ''

encodeURIComponent() 方法:

    把URI 字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。

不会被此方法编码的字符:! * ( ) ''

    因 此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。

另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。

关于解析JavaScript中的相对URLjavascript相对路径的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于flash – Actionscript 3中的相对URL、javascript – 具有相对url的window.location、javascript-如何从请求字符串的参数值中提取相对URL?、Javascript中的几种URL编码方法比较_javascript技巧等相关知识的信息别忘了在本站进行查找喔。

本文标签: