javascript - 如何将延迟加载与 TinyMCE 结合?

标签 javascript jquery image tinymce

我的网站上有 TinyMCE 插件。在 TinyMCE 插件的 textarea 中添加图像时,我希望这些图像包含延迟加载。我网站的缩略图具有特定类型的延迟加载,其中 src 图像是灰色背景。根据用户屏幕的大小,加载图像的类型。手机图片有data-mobile-src的data属性,桌面图片有data-large-src的data属性。

我如何做到这样,一旦 textarea 上传到我的数据库表,图像就可以延迟加载?

最佳答案

对于 future 的任何人,您可以使用 extended_valid_elements .
此属性用于允许有效属性,您可以为它们指定默认值。所以基本上,这一行添加了 'loading=lazy'自动地。

extended_valid_elements : 'img[class|src|alt|title|width|loading=lazy]',
我知道你们有些人想使用 data-src就像支持旧浏览器的技术一样,我找不到合适的方法来使用 TinyMCE 提供的任何配置。作为解决方案,我认为这很好用
htmlString是从 tinymce 收到的内容字符串和
const doc = new DOMParser().parseFromString(htmlString, "text/html");

doc.body.querySelectorAll('img').forEach(img => {
    img.setAttribute('data-src', img.src),
    img.removeAttribute('src')
})

console.log(doc.body.innerHTML) // your html to be sent to the server
您甚至可以使用此技术将图像更改为图片元素并对其进行 srcset。这种技术也可以使用 JSDom 库在服务器端实现。

关于javascript - 如何将延迟加载与 TinyMCE 结合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604808/

相关文章:

javascript - 基于差异的两条线之间的颜色区域

javascript - 意外的标记 !在 if 语句内

javascript - 当我的函数完成时,使用 JavaScript(或 jQuery)触发自定义事件

html - 无法获取 2 张图像以展开以填充父 div

javascript - 为什么我不能在 React Native 组件中使用 connect ?

javascript - 用灰色覆盖整个 html 页面以指示临时禁用

java - 从智能手机图像查看器中的 GridView 单击时显示图像

Prezi 格式的图像到视频

javascript - 按关键字对数组中的元素进行分组

从一个页面导航到另一个页面时,JavaScript 不会执行