javascript - 使用 jquery 预览 html 文档

标签 javascript jquery html iframe

尝试学习jquery。遇到了有关通过 iframe 预览文本区域输入的代码。

HTML

<div class="content">
  <textarea></textarea>
  <iframe></iframe>
</div>

JQuery

$(function () {
  'use strict';
  $(document).ready( function () {
    $('div.content textarea').keyup( function () {
      $('iframe').attr('srcdoc', $(this).val());
    });
  });
});

我认为 html 元素需要使用 .html() 而不是 .attr() 来预览文本区域输入和 html 标记?不要误会我的意思,它有效,只是不明白为什么不直接使用 .html() 方法。这两种方法有什么区别?

最佳答案

.html() 返回 html 标记内部的内容。因此,如果您在 div 标签上调用它,它将返回 <div></div> 之间的任何内容。 。 .attr 函数返回属性的值,例如 src img 上的属性,href anchor 上的属性。 srcdoc iframe 的属性是一个奇怪的属性,因为该属性接受 html。您在示例中所做的相当于普通 JS 中的以下操作:

document.getElementById("exampleFrame").srcdoc = "<div>html inside iframe</div>";

从技术上讲,<iframe></iframe> 内部没有任何内容。 ,而是在 <iframe srcdoc="some html"></iframe> 的 srcdoc 属性中。因此,为什么您需要调用 .attr

更多信息:MDN

关于javascript - 使用 jquery 预览 html 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505849/

相关文章:

javascript - 如何使用javascript从sqlite数据库中获取值

javascript - 简单的 javascript jQuery 代码在 Chrome 中工作,而不是在 Firefox、Safari、IE 中工作

javascript - 使用jquery多次点击按钮问题

javascript - 在 ajax 站点中预加载站点图像

javascript - 开始使用 Angular JS 的基本指南

javascript - Vue.js - 从 axios 返回数组

javascript - 在使用 Marionette 渲染的两个模板之间进行选择

javascript - PhantomJS includeJs() + 嵌套评估() 不工作

html - 如何删除列表项下方的神秘空白

javascript - 模拟鼠标移动,不起作用