首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的网站上实现Mozilla readability.js?

如何在我的网站上实现Mozilla readability.js?
EN

Stack Overflow用户
提问于 2020-06-11 06:38:02
回答 3查看 1.5K关注 0票数 5

https://github.com/mozilla/readability (readability.js用于创建网页的read视图)

我如何实现这个测试网页的readability.js问题是,readability.js删除了这个网站中我想保留的元素,而留下了那些应该删除的元素。我希望有人能帮助我。谢谢!有没有关于如何使用readability.js的文档?

代码语言:javascript
复制
<html><head>
<title>Reader View shows only the browser in reader view</title>
    <script src="https://raw.githack.com/mozilla/readability/master/Readability.js"></script>
</head>
<body>
Everything outside the main div tag vanishes in Reader View<br>
<img class="no-print" src="http://dummyimage.com/1024x100/000/ffffff&text=This+banner+should+vanish+in+print+view">
<div>
   <h1>H1 tags outside ot a p tag are hidden in reader view</h1>
   <img class="no-print" src="http://dummyimage.com/1024x100/000/ffffff&text=This+banner+is resized+in+print+view">
   <p>
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
 123456789 123456
</p>
</div>
</body>
    <script>
    var article = new Readability(document).parse();
    </script>
</html>

测试页面的来源:Optimize website to show reader view in Firefox

EN

回答 3

Stack Overflow用户

发布于 2020-08-17 05:00:09

你试过这个吗?

在他们的github页面上:

“Readability的parse()通过修改DOM来工作。这会删除网页中的某些元素。您可以通过在创建Readability对象时传递document对象的克隆来避免这种情况。”

代码语言:javascript
复制
var documentClone = document.cloneNode(true); 
var article = new Readability(documentClone).parse();

您可以复制dom对象,这样就不会实际修改真正的dom。

票数 3
EN

Stack Overflow用户

发布于 2020-08-26 22:23:19

你可以将DOMPurify和可读性一起使用,就像他们在文档中提到的那样。

代码语言:javascript
复制
import { Readability } from '@mozilla/readability'
import DOMPurify from 'dompurify';

function readable(doc) {
  const reader = new Readability(doc)
  const article = reader.parse()
  return article
}

let cloneDoc = document.cloneNode(true)
let parsed = readable(cloneDoc)
const markup = DOMPurify.sanitize(parsed.content)

markup将是可读内容的html字符串。尝试使用console.log(parsed)查看可用的属性。

票数 3
EN

Stack Overflow用户

发布于 2020-06-12 01:25:02

好的..。

代码语言:javascript
复制
    document.getElementById("body").innerHTML = "<font face='Calibri' size='4'> 
    <h1>"+article.title+"</h1>"+article.content;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62314251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档