【问题标题】:Open jQuery dialog from previous page从上一页打开 jQuery 对话框
【发布时间】:2014-02-27 09:41:52
【问题描述】:

这听起来可能含糊不清,对此我深表歉意。但我似乎找不到任何东西或任何人试图和我做同样的事情。

虽然,我刚刚看到 How to trigger open a jQuery UI dialog from a separate page?,但我不确定这是否真的有效。

我有一个会员个人资料页面,其中包含由 XML 提要驱动的数据。个人资料页面上有一个链接,可打开一个 jQuery 对话框。这工作正常。

在网站的其他地方,是另一个页面,它根据过滤器生成成员列表,并带有指向该用户个人资料的链接。同样在另一个页面上,包含成员列表,是 jQuery 对话框的重复链接。

如何让这个重复的链接转到个人资料页面并自动触发 jQuery 对话框打开?

【问题讨论】:

    标签: php jquery html dialog


    【解决方案1】:

    我的方法是使用 URL 的哈希部分

    例如,您从其他页面访问个人资料的 URL 应该是这样的

    profile#showdlg
    

    在个人资料页面中

    var hash = window.location.hash.substr(1);
                    if(hash == "showdlg"){
                         //Show dialog here
                     }
    

    这应该可以解决问题

    【讨论】:

      【解决方案2】:

      您不能(不应该)直接触发“将来加载”页面中的某些脚本操作。相反,触发器应该是页面本身的一部分。

      因此,如果该配置文件页面以动态方式生成,则一种方法是实现添加此类触发器的条件功能(例如在 dom 树准备好时使用 jquery 触发对话框,有数百万个示例) .条件是个人资料页面是否已通过此类特殊引用调用。您可以通过查看 HTTP-REFERER 来检测到这一点。所以它归结为:如果以特定方式调用,则将 2 行代码触发器添加到最初触发对话框的配置文件页面。

      为了回答你的评论,这里有一些更详细的描述:

      涉及的编码不多。这些链接引用了用户个人资料页面。个人资料页面是由我假设的 php 生成的。因此,您需要添加的只是一个细节:在 php 中检查当前处理的请求是否具有某个引用它的来源:

      <?php .... if ('other_page.php'==$_SERVER[HTTP_REFERER]) { ... } ... ?>
      

      如果您知道配置文件页面是从其他页面调用的,而不是正常情况,那么您希望 UI 对话框自行触发。为此,您在生成的页面中添加了一个小 javascript,一旦页面加载,它就会起作用:

      <script>$(document).ready(function(){$('#mydialog').raise();})</script>
      

      细节显然取决于什么类型的对话以及它是如何引发的。但是你应该明白我的建议......

      【讨论】:

      • 这听起来很像我所追求的。你能把它分解吗?在编码示例方面?
      猜你喜欢
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多