2011-05-23 123 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

相關問題