通过单击链接将类添加到另一个页面的主体?

时间:2014-07-27 12:29:33

标签: jquery html css

是否可以使用jquery,以便当您单击链接时,它会转到另一个页面并将类添加到新页面的body标记中。

当然新页面应该在同一个窗口中打开(而不是在新窗口中)。

3 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点,但在这两种情况下你应该拥有你想要打开的新页面

第一种解决方案

第一个解决方案是指示某个软件,例如锚点,并在新页面中查找锚点,如果存在则添加类

$(document).ready(function(){
  var hash = window.location.hash.substring(1);
  if(hash =="indication")
    $("body").addClass("class_to_add");
});

如果两个页面位于同一个域中,则可以使用cookie作为指示。例如,您可以使用this one之类的库来添加Cookie并在其他页面中获取Cookie

// in first page
 $.setCookie("indication","value"); 

// in second page
$(document).ready(function(){
  if($.getCookie("indication") =="value")
    $("body").addClass("class_to_add");
});

第二种解决方案

第二个解决方案是使用iframe,点击链接后,您将网页正文更改为iframe 100% width100% height,然后您可以将该类添加到iframe之外的页面内的页面就像这样

$("iframe").contents().find("body").addClass("class_to_add")

答案 1 :(得分:0)

它有可能,但不是你想要的那么简单。您的javascript无法修改尚未加载的网页的DOM,并且一旦加载了您调用的javascript,就不再存在。

你可以做的是在某处设置某种标志,或者作为URL中的查询字符串,或者作为cookie变量或web存储变量。然后在下一页的加载中,检查是否存在此标志,如果存在,则添加所需的类。

除此之外,没有办法做到这一点

答案 2 :(得分:0)

要实现这一点,基本上,当您转到下一页时,您必须保留标志或类名。 Webstorage是一种方式,但最快的方法是使用URL。

以下是示例:它使用哈希参数:

调用html页面:

<a href="new.html#myclass1">Apply .myclass1 to body</a>
<a href="new.html#myclass2">Apply .myclass2 to body</a>

调用html页面

$(function(){
   var hash = $(location).attr('hash');
   $('body').addClass(hash);
});