这个javascript代码有什么作用?

时间:2011-10-05 17:27:37

标签: javascript

此代码以url作为输入,但我不确定它的作用或执行此操作的好处

var hashPos = url.lastIndexOf ( '#' );
return url.substring( hashPos + 1 );

5 个答案:

答案 0 :(得分:10)

它从URL中获取哈希值:

因此,如果网址为:http://something.com/foo#xyz,则会获得xyz

如果URL中没有哈希标记,则此代码返回整个URL(可能不是所需的结果)。

这可能是一个更安全的变体,当没有哈希值时返回空字符串:

var hashPos = url.lastIndexOf ( '#' );
if (hashPos != -1) {
    return url.substring( hashPos + 1 );
} else {
    return("");
}

答案 1 :(得分:2)

返回网址中#之后的内容。

详细说明:

var hashPos = url.lastIndexOf ( '#' ); // Gets the position of the last # found in the string.
return url.substring( hashPos + 1 ); // Gets a piece of the string starting at the given position (hashpos + 1).

答案 2 :(得分:1)

它在哈希(#)标记后获取URL中的所有内容。

var url = "http://www.mysite.com/test#somesection";

var hashPos = url.lastIndexOf ( '#' );  
return url.substring( hashPos + 1 );  //returns "somesection"

答案 3 :(得分:1)

从最后一个#字符到结尾之后返回字符串的一部分。即该页面中的位置。

答案 4 :(得分:1)

var hashPos = url.lastIndexOf ( '#' ); 

这会抓取URL字符串中的哈希字符(#)的位置。

return url.substring( hashPos + 1 ); 

然后返回url字符串中哈希位置之后的所有内容。

结果将是哈希标记。这可以用于AJAX应用程序,您可以在其中保持页面状态,并且能够链接到该状态而无需实际链接到单独的页面。

一个例子是:

var recent_hash = "";                       
setInterval(poll_hash, 100); // Initialize our hash polling interval for ajax urls

function poll_hash() {
 if (url.substring( hashPos + 1 ) == recent_hash) { return; }   // No change
 recent_hash = url.substring( hashPos + 1 );
 process_hash(recent_hash); 
}

function process_hash(hash_id)
{
 var ajax_url = '/ajax/link_hash/' + hash_id;
 $('#some_div').load(ajax_url)
}