从上一页打开jQuery对话框

时间:2014-02-27 09:41:53

标签: php jquery html dialog

这可能听起来很模糊,我为此道歉。但我似乎找不到任何想要和我做同样事情的人。

虽然,我刚刚看到How to trigger open a jQuery UI dialog from a separate page?,但我不确定这是否会严格起作用。

我有一个配置文件页面,供会员使用XML Feed驱动的数据。在配置文件页面上是一个打开jQuery对话框的链接。这很好。

在网站的其他位置,是另一个页面,它根据过滤器生成成员列表,并带有指向该用户配置文件的链接。此另一页上的成员列表是jQuery对话框的重复链接。

如何将此重复链接转到配置文件页面并自动触发jQuery对话框以打开?

2 个答案:

答案 0 :(得分:0)

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

例如,您从其他页面查看个人资料的网址应该是这样的

profile#showdlg

并在个人资料页面

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

这应该可以解决问题

答案 1 :(得分:0)

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

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

在此处回答您的评论,更详细的描述:

涉及的编码不多。链接引用用户配置文件页面。配置文件页面是由我假设的php生成的。所以你需要添加的是一个细节:在php中检查当前处理的请求是否有一个特定的引用来自:

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

如果是这样,您知道配置文件页面是从其他页面调用而不是正常情况,因此您希望UI对话框自动触发。为此,您可以在生成的页面中添加一个小的javascript,只要页面加载就可以实现这一功能:

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

详细信息显然取决于对话框的类型及其引发方式。但你应该明白我的建议......