我的页面上有一个 jQuery 单击功能,它触发了反馈表单 div 的打开。基本上,我想指定一个无需单击即可触发此事件的 url。比如 foo.com?formopen
这可能吗?我想我需要通过 url 传递一些数据,但不知道如何去做。
我的页面上有一个 jQuery 单击功能,它触发了反馈表单 div 的打开。基本上,我想指定一个无需单击即可触发此事件的 url。比如 foo.com?formopen
这可能吗?我想我需要通过 url 传递一些数据,但不知道如何去做。
在您的 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(警报调用)
嘿,有很多方法可以做到这一点。
方法一 - 使用查询字符串参数
在您的 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();
}