0

我有一个网站 example.com。当我访问这个页面 example.com/#login 时,我想调用一个 js 警报函数。我怎样才能做到这一点?

4

4 回答 4

5
// example.com/#login
if (window.location.hash) {
    alert("URL has hash");
    var hash = window.location.hash; // = "#login"
    callMyFunction();
}
于 2012-04-30T14:44:32.443 回答
1

如果您想要一个好的跨浏览器库来处理 url,我会查看 History.js

https://github.com/browserstate/History.js/

History.Adapter.bind(window,'statechange',function(){ 
    // Note: We are using statechange instead of popstate
    var State = History.getState(); 
    // Note: We are using History.getState() instead of event.state
    History.log(State.data, State.title, State.url);
});

还有 Backbone.js,它可能比你需要的要多,因为它是一个 MV* 框架,但是它有一个路由器的概念,这也很有帮助。

http://backbonejs.org/#Router

于 2012-04-30T14:49:34.607 回答
0

我认为您可以检查是否window.location.hash不是虚假值来检查 URL 中是否存在哈希值。

例如:

function someAlert(message) {
    // This would be your alert function. This is just for example
    alert(message);
}
// The "if the URL has a hash":
if (window.location.hash) {
    someAlert("Hello URL with a hash visitor!"); // "Hello URL with a hash visitor!" can be whatever you want
}

如果您想保存之后的任何内容(包括哈希),只需使用:

var hash = window.location.hash; // hash would be "#login" if the URL was http://example.com/#login
于 2012-04-30T14:52:46.693 回答
0

您可以检查#login 的URL。如果存在,请调用该函数。 http://www.webmasterworld.com/forum91/216.htm

我推荐 jQuery,这种方法:http: //jquery-howto.blogspot.co.uk/2009/09/get-url-parameters-values-with-jquery.html

于 2012-04-30T14:44:07.327 回答