Javascript 如何检索页面节的html和样式?

Javascript 如何检索页面节的html和样式?,javascript,css,innerhtml,Javascript,Css,Innerhtml,我试图检索网页部分的当前内容(通常是div或table元素)。其目的是将其显示为独立的(例如用于打印目的)或将其插入另一页。对我来说,不仅要收集元素,还要收集它们的计算样式,因为一些内容已经被其他脚本突出显示或用颜色编码 我可以使用innerHTML获取html,并使用getComputedStyle获取特定元素的样式。但是如何获取整个节的html和样式呢?你不能真正检索节的样式,你必须获取元素的样式 您必须记住,您不再处理原始CSS,而是处理每个元素的计算样式。您无法真正检索某个部分的样式,您

我试图检索网页部分的当前内容(通常是div或table元素)。其目的是将其显示为独立的(例如用于打印目的)或将其插入另一页。对我来说,不仅要收集元素,还要收集它们的计算样式,因为一些内容已经被其他脚本突出显示或用颜色编码


我可以使用innerHTML获取html,并使用getComputedStyle获取特定元素的样式。但是如何获取整个节的html和样式呢?

你不能真正检索节的样式,你必须获取元素的样式


您必须记住,您不再处理原始CSS,而是处理每个元素的计算样式。

您无法真正检索某个部分的样式,您必须获取某个元素的样式


您必须记住,您不再处理原始CSS,而是处理每个元素的计算样式。

我曾经在jQuery中制作了一些东西,可以检索所有(而不是特定部分)样式。css文件、样式标签和特定页面的内部样式。我不知道该怎么做,但也许你可以用这个脚本。它并不是在所有场景下都能工作,有时它会有点问题,因为我没有对它进行足够的测试。 也许StackOverflow上还有其他人可以继续使用这段代码。;)


我曾经在jQuery中制作了一些东西,可以检索所有样式(而不是特定的部分)。css文件、样式标签和特定页面的内部样式。我不知道该怎么做,但也许你可以用这个脚本。它并不是在所有场景下都能工作,有时它会有点问题,因为我没有对它进行足够的测试。 也许StackOverflow上还有其他人可以继续使用这段代码。;)


有趣。我看到的问题是,它只检索样式属性,而不检索脚本插入的样式。我想我可以稍微修改一下,改为使用计算样式。是的,它只检查页面加载。我试图创建一个Javascript文件,它将消除CSS中存在的所有跨浏览器问题。一些自动CSS编写器。很有趣。我看到的问题是,它只检索样式属性,而不检索脚本插入的样式。我想我可以稍微修改一下,改为使用计算样式。是的,它只检查页面加载。我试图创建一个Javascript文件,它将消除CSS中存在的所有跨浏览器问题。一些自动CSS编写器。
var all_css = {stylesheets:[], inner_head_styles:[], body_styles:[]};

$(function(){
  $.ajaxSetup({ 
    async: true,
    crossDomain: true,
    dataType: "text",
    type: "GET"
  });

  var calls = [];
  /*every non-cross-domain .css file*/
  $("head link[rel='stylesheet']").each(function(a, stylesheet){
    if($(stylesheet).attr("href").match(/((ftp|http|https):\/\/)?/)[0] == ""){
      var css_source = $(stylesheet).attr("href");
      var css_call = $.ajax({
        url: css_source,
        success: function(data){
          all_css.stylesheets.push(data);
        },
        error: function(e, f){
          alert(e, f);
        }
      });

      calls.push(css_call);
    }
    else{
      console.log("CSS SOLVER: Cross domain CSS's aren't going to be loaded!");
    }
  });

  /*every head style*/
  $("style").each(function(b, style){
    all_css.inner_head_styles.push($(this).text());
  });

  /*every element in the body that has a style attribute*/
  $("body[style], body *[style]").each(function(c, style){
    var css_html_node = $(style).context.nodeName;
    var css_class = typeof($(style).attr("class")) != "undefined" ? "."+$(style).attr("class") : "";
    var css_id = typeof($(style).attr("id")) != "undefined" ? "#"+$(style).attr("id") : "";

    css_class = css_class.replace(/\s/g, ".");
    var css_string = css_html_node + css_id + css_class + "{" + $(style).attr("style") + "}";
    all_css.body_styles.push(css_string);
  });


  $.when.apply(null, calls).done(function(){
    console.log(all_css);
  });
});