使用jQuery根据URL显示特定的模式

时间:2019-05-01 12:48:41

标签: javascript jquery bootstrap-4 bootstrap-modal

如何根据URL显示特定的模式?

我正在使用Bootstrap作为响应框架。

我有两种模式(实际上有很多模式):

  1. privvilege_10
  2. privvilege_11

使用url和jquery打开模态:

$(document).ready(function() {

  if(window.location.href.indexOf('#privilege_10') != -1) {
    $('#privilege_10').modal('show');
  }

});
$(document).ready(function() {

  if(window.location.href.indexOf('#privilege_11') != -1) {
    $('#privilege_11').modal('show');
  }

});

如果URL为 index.php#privilege_10 ,则 privilege_10 的模式将被打开,并且URL为 index.php#privilege_11 ,那么将打开 privilege_11 的模式。

由于存在许多这样的模式,因此为每个模式添加代码将非常长。

那么如何只编写一次代码就可以做到呢? (如循环播放)

if(window.location.href.indexOf('#privilege_10') != -1)可以更改为检查网址是否包含 #privilege (如果

$('#privilege_10').modal('show');应该更改为 $('what ever the url contains [#privilege_10 or #privilege_11]').modal('show'); ,就像我们在 php $_GET['']

中所做的一样

2 个答案:

答案 0 :(得分:0)

让URL的哈希值代替模式的ID,而不是检查特定的模式。因此,您所需要做的就是获取哈希值,然后使用该值调用模式。

$(window.location.hash).modal('show');

如果模态不存在,则不会发生任何事情。如果是这样,将显示模态。请注意,此示例没有对window.location.hash进行任何检查。

答案 1 :(得分:0)

您可以尝试从URL获取锚,然后可以验证其正确性,如果正确,请弹出模式。

我要执行的功能:

$(function () {
    var anchor = window.location.hash;
    if (anchor.split('_')[0] == '#privilege') {
       $(anchor).modal('show');
    }
}