Javascript 获取网页的前n个文本字符及其样式等

Javascript 获取网页的前n个文本字符及其样式等,javascript,html,css,Javascript,Html,Css,我想获取网页的前n个字符,并将其显示为原始文档中的显示 我想在JavaScript中使用textContent来获取文本,然后以某种方式递归地获取所有没有文本的DOM(我希望这是正确的术语)。但似乎重组它们将非常困难 此外,也许有一个简单的方法来实现这一点。那么为什么要重新发明轮子呢 那么,如何做到这一点呢?(我不是要完整的代码,只是要一种解决方法。)下面的代码删除文档中前35个字符之后的所有文本。它忽略不可见的文本和完全由空白组成的文本节点。您可以看到它的演示: var限值=35; 无功电流=

我想获取网页的前n个字符,并将其显示为原始文档中的显示

我想在JavaScript中使用
textContent
来获取文本,然后以某种方式递归地获取所有没有文本的DOM(我希望这是正确的术语)。但似乎重组它们将非常困难

此外,也许有一个简单的方法来实现这一点。那么为什么要重新发明轮子呢


那么,如何做到这一点呢?(我不是要完整的代码,只是要一种解决方法。)

下面的代码删除文档中前35个字符之后的所有文本。它忽略不可见的文本和完全由空白组成的文本节点。您可以看到它的演示:

var限值=35;
无功电流=0;
函数递归(元素){
如果(element.childNodes.length>0){
对于(var i=0;i限制){
element.nodeValue=element.nodeValue.substr(0,限制-当前)
}
电流+=长度;
}否则{
element.nodeValue=“”;
}
}
}
var html=document.getElementsByTagName('html')[0];
递归(html);

你想在Javascript或ASP中实现这一点吗?你所说的“前n个(任意数字)字符”是什么意思?例如,该页面可能有1000个字符,我想用相同的格式显示前500个字符。正如显示整个页面时所显示的那样。@Sheikheera我不理解你的评论。
var limit = 35;
var current = 0;

function recurse(element) {
  if (element.childNodes.length > 0) {
    for (var i = 0; i < element.childNodes.length; i++) {
      recurse(element.childNodes[i]);
    }
  }

  if (element.nodeType == Node.TEXT_NODE && element.nodeValue.trim() != '' && window.getComputedStyle(element.parentElement).height != "auto") {
    var length = element.nodeValue.length;
    if (current < limit) {
      if(current + length > limit){
        element.nodeValue = element.nodeValue.substr(0, limit - current)
      }
      current += length;
    } else {
      element.nodeValue = "";
    }
  }
}
var html = document.getElementsByTagName('html')[0];
recurse(html);