2009-08-14 53 views
0

有誰知道我怎樣才能將window.open(url)分配給javascript中的cookies數組?任何我可以將window.open(url)分配到javascript數組中的方式?

下面是我目前使用的代碼,但似乎並沒有真正的工作很適合我....

var expiredays = 30 
var exdate=new Date(); 
exdate.setDate(exdate.getDate()+expiredays); 
document.cookie="childWindowHandles["+num+"] =" +window.open(url)+ 
((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); 
+2

你試圖達到什麼樣的效果? – 2009-08-14 03:44:46

+0

你可以把它作爲一個字符串,並評估代碼回來給你,但爲什麼你會想這樣做! – Tres 2009-08-14 05:10:33

+0

在下面添加了一個替代方法作爲答案。 – Tres 2009-08-14 05:23:34

回答

0

的document.cookie ===字符串

window.open == =對象

對象!==字符串

因此

document.cook即!== window.open

0

將uri字符串分配到要打開的窗口的cookie數組中,然後在要調用window.open時將其從cookie中取出會更好。將代碼或敏感數據插入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); 
} 

然後你可以去:

createCookie('openUri', uriToOpen); 

var openUri = readCookie('openUri'); 

if (openUri) { 
    window.open(openUri, 'myWindow'); 
} 

或類似的東西。

希望這會有所幫助。

相關問題