2011-11-29 15 views
0

我使用下面的行來改變DIV包裝的背景圖像:使用JavaScript來改變一個div的背景圖像中的另一頁

$("#wrapper").css("background","url(images/bg.jpg) no-repeat 0 0"); 

然而,在包裝的另一頁存在從功能我在這裏調用這行代碼,所以當我用Wrapper導航到頁面時,它並沒有改變。

是否有反正我可以從另一個頁面更改Wrapper的背景?

感謝

+3

使用一個Cookie? – ManseUK

+0

[使用JQuery訪問新窗口的DOM]可能的重複(http://stackoverflow.com/questions/7788480/using-jquery-to-access-a-new-windows-dom) –

+0

您是否正在導航到完全新的頁面與完整的帖子回來? – arb

回答

1

您可以在值存儲在cookie中,在這裏工作的例子 - >http://jsfiddle.net/manseuk/cEpjc/

其存儲在你想設置背景的網頁上的cookie:

setCookie('background','url(images/bg.jpg) no-repeat 0 0'); 

然後在「其他」頁面上執行以下操作:

$('#div').css('background',getCookie('background')); 

對於coo紀伊閱讀和寫作,你既可以使用一個jQuery plugin(感謝@Filip)或基本的JavaScript的cookie的方法:

function setCookie(c_name, value, exdays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
    document.cookie = c_name + "=" + c_value; 
} 


function getCookie(c_name) { 
    var i, x, y, ARRcookies = document.cookie.split(";"); 
    for (i = 0; i < ARRcookies.length; i++) { 
     x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
     y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
     x = x.replace(/^\s+|\s+$/g, ""); 
     if (x == c_name) { 
      return unescape(y); 
     } 
    } 
} 
+0

很好的答案!但既然你已經在jQuery上,我會建議你運行jQuery Cookie Plugin。 http://plugins.jquery.com/project/cookie – Filip

+1

@菲利普謝謝..我已經更新了答案,包括插件作爲替代... 1.86 KB雖然!!!!! ;-) – ManseUK

+0

我使用Wrapper div在頁面上進行更改。如何在甚至導航到頁面之前設置cookie? – jcrowson

相關問題