是否可以使用jquery,以便当您单击链接时,它会转到另一个页面并将类添加到新页面的body标记中。
当然新页面应该在同一个窗口中打开(而不是在新窗口中)。
答案 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% width
和100% 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);
});