1

我的页面上有一个 jQuery 单击功能,它触发了反馈表单 div 的打开。基本上,我想指定一个无需单击即可触发此事件的 url。比如 foo.com?formopen

这可能吗?我想我需要通过 url 传递一些数据,但不知道如何去做。

4

2 回答 2

9

在您的 URL 中使用哈希,例如:

foo.com#formopen

然后在加载时找到该哈希,例如:

$(function(){

   if (window.location.hash){
      var hash = window.location.hash.substring(1);
      if (hash == "formopen"){
         openFeedbackForm();
      }
   }

});

演示:

代码:http: //jsfiddle.net/J5cxc/

没有哈希的演示:http: //fiddle.jshell.net/J5cxc/show(无警报)

带哈希的演示:http: //fiddle.jshell.net/J5cxc/show/#foobar(警报调用)

于 2012-11-21T12:07:39.357 回答
0

嘿,有很多方法可以做到这一点。

方法一 - 使用查询字符串参数

在您的 url 中传递一个查询字符串值,该值指示应打开表单。

所以你的网址是

www.foo.com?feedback=true

然后在JS中你可以这样做:

var params = {};
var ps = window.location.search.split(/\?|&/);
for (var i = 0; i < ps.length; i++) {
    if (ps[i]) {
        var p = ps[i].split(/=/);
        params[p[0]] = p[1];
    }
}
if(params.feedback){
     $(".feedback-div").show();
}

方法二 - 在 url 中使用井号标签

您的网址将如下所示:

www.foo.com#feedback

在你的 JS 中:

if(window.location.href.indexOf("#feedback") > -1) {
     $(".feedback-div").show();
}
于 2012-11-21T12:06:24.447 回答