2011-11-29 40 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

相关问题