【问题标题】:How to load an appened tag onto a URL on page load如何在页面加载时将附加标签加载到 URL 上
【发布时间】:2013-11-21 04:12:10
【问题描述】:

我知道有更有效的方法可以做到这一点,但我有理由这样做。我有一个模态弹出窗口。我希望访问者加载页面后立即弹出此窗口。到目前为止,通过单击将它们带到 index.php#login_form 的链接可以到达并打开该窗口。

"#login_form" 是我想在页面加载时添加 URL。然后他们可以选择在它最初加载弹出窗口后退出它。

现在有没有一种方法可以更有效地做到这一点,而无需大量更改我的 css 或代码?

谢谢!

【问题讨论】:

  • 'modal-popup-window' 听起来像引导程序。您是在使用 Bootstrap 弹出窗口还是创建了自定义弹出窗口?
  • 我在这里用过这个script-tutorials.com/css3-modal-popups
  • 我只是不知道如何让“#login_form”在页面加载时触发。甚至尝试了一个 php 标头位置:

标签: html css modalpopups


【解决方案1】:

url中的hash可以通过javascript中的window.location.hash访问。你可以在body onload事件中判断。

【讨论】:

  • 这个比我的更好更简单。
  • 感谢您的努力。 =)
  • @user2833068 欢迎。
【解决方案2】:

为了回答您的问题,我创建了一个小提琴,它以您的为例并解决了您正在寻找的问题。 http://jsfiddle.net/sgaurav/xA4vG/

基本上,这段代码的作用是,选择您要模拟的点击 id,然后根据此处给出的答案为点击创建一个鼠标事件How do I simulate user clicking a link in JQuery?

$.fn.simulateClick = function() {
    return this.each(function() {
        if('createEvent' in document) {
            var doc = this.ownerDocument,
                evt = doc.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, doc.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
            this.dispatchEvent(evt);
        } else {
            this.click(); // IE
        }
    });
}

现在这段代码用于 body 的 onload 事件来伪造点击你手动执行的链接,直到现在使用

jQuery(document).load(
    jQuery('#join_pop').simulateClick()
);

这反过来会在页面打开后立即加载弹出窗口。如果需要,您可以将最后代码中的 id 更改为登录表单,这将开始显示在页面加载而不是注册时。

【讨论】:

  • 你的方法会影响基本 URL 吗?
  • 是的,确实如此。当点击被伪造时,它会做所有手动点击应该做的事情,包括在顶部附加#join_form。
【解决方案3】:

一种简单的方法是使用主题标签 login_form 直接加载页面:

http://www.script-tutorials.com/demos/222/index.html#login_form

或者如果你想更“精确”,你可以像这样使用 jquery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<body>

<!--Place this at the end of the body tag.-->
<script>
$(function(){
   window.location.hash = "login_form"; //this will add with js the #login_form hash at the end of th url
})
</script>


您可以使用 jquery 在加载窗口时显示模态: 试试这段代码,你就会明白:

$(function(){
   alert("Done loading");   
})

您将添加代码以显示模式而不是警报功能。如果模态框使用 css 显示或隐藏,您可以轻松地将 css 类添加到元素中:

$(".element").addClass("showModal);

或者删除一个类:

 $(".element").removeClass("hideModal");

确保已导入 jquery 库。我希望这能回答你的问题。

【讨论】:

  • 抱歉,对 jquery 不够熟悉,无法执行或编写您的建议。不过我可以快速拿起它。我该如何写出来?
  • 效果很好!感谢您的耐心和回答。 =) 接受。需要更多代表才能投票。
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 2018-03-19
相关资源
最近更新 更多