2011-05-23 140 views
1

我需要在加载页面时显示弹出窗口。这是发生了什么。下订单后,用户被重定向到他们的索引页面(该帐户的主登录页面),当他们被重定向到索引页面时,我需要一个弹出窗口来显示页面加载,您的$变量订单已保存“。 $变量在前一页定义(它们来自哪里),我需要这个变量以便我可以在弹出框中显示它。然后,一旦他们在弹出框中点击“确定”,他们就会像往常一样在主页面上。页面加载弹出窗口

我已经在这个项目中使用过一个java弹出框,但我不确定如何处理这些需求。如果有其他更好的方法可以做到这一点,我可以接受创意。这需要如何工作的布局如下:

客户端登录到他们的帐户 - > Order.php页面(下订单) - >重定向到他们的member-index.php页面(弹出需要加载在页面加载,并且只有当它来自order.php页面时)

谢谢!

+0

你使用的是JavaScript库(jQuery,Dojo,Mootools)吗?普通的JavaScript? – martynthewolf 2011-05-23 13:16:09

+0

是否有订单确认页无法使用的原因?您可能想看看亚马逊,戴尔等公司如何处理这种情况,并考虑重新定义工作流程。 – 2011-05-23 13:18:03

+0

如果目标是通知用户某个操作已成功执行,请考虑类似jQuery的show()和hide()以显示短时间内的可见确认 - 甚至可以使用lightbox样式的div。弹出窗口(新的浏览器窗口)可能会有点噩梦来管理,因为当用户触摸主窗口时会弹出窗口 - 导致混淆。 – Cups 2011-05-23 13:23:07

回答

0

那么从我的理解这将是最适合你的。

在上一页保存cookie(来源http://www.quirksmode.org/js/cookies.html)。

function createCookie(name,value,days) { 
if (days) { 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    var expires = "; expires="+date.toGMTString(); 
} 
else var expires = ""; 
document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
for(var i=0;i < ca.length;i++) { 
    var c = ca[i]; 
    while (c.charAt(0)==' ') c = c.substring(1,c.length); 
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 
return null; 
} 

function eraseCookie(name) { 
createCookie(name,"",-1); 
} 

createookie("prevData", prevData, 30); 

然后在页面上你想要的弹出窗口出现(我建议使用警报)(注:需要使用此页面上可用的cookie的代码以及):

var prevData = readCookie("prevData"); 
if(prevData != null){ 
    alert("Your order for " + prevData + " has been saved"); 
    eraseCookie("prevData"); 
} 

这可能是在<body onLoad="code">或简单地在头部或任何地方的脚本。

+0

创建cookie的代码,我在哪里放置在我的上一页?在标题中,body? – Jason 2011-05-23 14:35:11

0

您无法在加载页面时强制打开弹出页面;浏览器不会再这样做了。您可以通过在屏幕中间放置一个元素并对其进行装饰,使其看起来有点像窗户一样来创建一个“假”弹出窗口。各种JavaScript库提供了这种“对话”功能。

0

` 功能showpopup(){

  var findString = /order.php/gi; 
      var referringURL = document.referrer; 
      var data = getQuerystring('variable'); 
      if(referringURL.match(findString)) { 
       var windowprops = "left=50,top=50,width=500,height=500"; 
       var preview = window.open("http://google.com", "preview", windowprops); 
       preview.document.write(data); 
      } else { 
       alert("Not order.php "+data); 
      } 
     } 

     function getQuerystring(key, default_) { 
      if (default_==null) default_=""; 
      key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
      var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); 
      var qs = regex.exec(window.location.href); 
      if(qs == null) 
       return default_; 
      else 
       return qs[1]; 
     } 
    </script> 
</head> 
<body onload="showpopup()"> 

`

0

我假设你的意思的JavaScript。您可能想要这样做

<body onLoad="popup()"> 

“onLoad”事件中的任何代码都应在加载html后触发。 如果您正在使用jQuery,它应该是这样的

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

你可以通过你的变量到弹出功能。

+0

只需注意,''document''不应该在引号中,它应该是'$(document).ready()',或者是最短的形式,只有'$(弹出);'整体。 – 2011-05-25 10:25:47

相关问题