为了账号安全,请及时绑定邮箱和手机立即绑定

如何实现 Mozilla 的可读性.js我的网站?

如何实现 Mozilla 的可读性.js我的网站?

慕的地6264312 2022-09-29 15:54:41
https://github.com/mozilla/readability(可读性.js用于创建网页的读取视图)如何实现可读性.js此测试网页的问题是,可读性.js删除了本网站的元素,我想保留并留下那些应该删除的元素。我希望有人能帮助我。谢谢!是否有任何关于如何使用可读性的文档.js?<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>测试页面的来源:优化网站以在 Firefox 中显示读者视图
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以将DOM纯化和可读性一起使用,就像他们在文档中提到的那样 -


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)


查看完整回答
反对 回复 2022-09-29
?
慕村9548890

TA贡献1884条经验 获得超4个赞

你试过这个吗?

从他们的github页面:

“可读性的解析()通过修改DOM来工作。这将删除网页中的某些元素。您可以通过在创建可读性对象时传递文档对象的克隆来避免这种情况。

var documentClone = document.cloneNode(true); 
var article = new Readability(documentClone).parse();

您可以创建 dom 对象的副本,这样您就不会实际修改实际的 dom


查看完整回答
反对 回复 2022-09-29
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

好。。。。

    document.getElementById("body").innerHTML = "<font face='Calibri' size='4'> 
    <h1>"+article.title+"</h1>"+article.content;


查看完整回答
反对 回复 2022-09-29
  • 3 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号