【问题标题】:Show bootstrap modal only if URL has certain parameters仅当 URL 具有某些参数时才显示引导模式
【发布时间】:2015-01-22 00:23:59
【问题描述】:

有没有办法使用 Bootstrap 的模态功能来评估参数的 URL 并自动打开模态?

例如:

具有 URL 的站点的访问者:example.com 看不到模式。他们只看到常规网站。

网址为example.com?offer=1234example.com/offer1234 的网站的访问者会看到常规的example.com 网站,但在页面加载时顶部会显示一个特殊的模式。

想不出任何办法来做到这一点。

【问题讨论】:

    标签: javascript jquery twitter-bootstrap


    【解决方案1】:

    是的,当然这可以通过仅在查询字符串 (offer=1234) 或 URL (/offer1234) 匹配时运行一些 JavaScript 代码来实现。

    在声明模态的 div 之后的某处插入此 javascript 代码,通常最好在结束 </body> 标记之前添加:

    <script type="text/javascript">
    var url = window.location.href;
    if(url.indexOf('?offer=1234') != -1 || url.IndexOf('/offer1234') != -1) {
        $('#myModal').modal('show');
    }
    </script>
    

    您可以随意调整 if 语句,如果您只想测试其中一个 url 模式,并且 myModal 定义了一个 div显示您的模态内容(例如&lt;div id="myModal"&gt;&lt;/div&gt;)。

    有关更多选项和指南,请参阅文档。 http://getbootstrap.com/javascript/#modals-options

    更新我还为您准备了一个工作 Plunker 来演示: http://run.plnkr.co/yEBML6nxvxKDf0YC/?offer=1234

    【讨论】:

    • 这真的可以和example.com/offer一起工作吗?这不试试找目录吗?
    • 我已经更新了一些演示代码。不会,如果所有这些代码都安装到 offer1234.html 或者该路径以某种方式解析为某个 html,我不熟悉您的设置。
    • 您的 plnkr 没有为我打开模式。我也无法让您的代码在我的网站上运行。
    • 抱歉再次运行。你在最后一次编辑时抓住了我 :)
    • 只是想让你知道我用重写器完成了这一切,所以你上面的代码节省了一天。谢谢。
    【解决方案2】:

    您可以检查网址是否有“报价”或不隐藏/显示模式

    var hasParam = window.location.href.indexOf('offer');
    
    if(hasParam) {
       $('#aModal').show();
    } else {
      $('#aModal').hide();
    }
    
    <div id="aModal" class="modal"> </div>
    

    【讨论】:

    • URL 结构必须是什么样子才能使其工作。我试过example.com?offer=1234,但没用。
    • @IsabelHM div 必须在 js 代码上方声明,并且显然包含在脚本标签中,但这是给定的。
    • 即使在脚本之前使用 div,这对我也不起作用。
    • @GONeale 这与您的答案基本相同。没有。不编写整个运行代码,因为我认为 jonmrich 对如何实现基础知识有基本的了解(除非我错了),并且只需要重新考虑如何去做。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2021-07-30
    相关资源
    最近更新 更多