当前位置: 首页 > 面试题库 >

编辑,保存,自修改HTML文档;格式生成的HTML,JavaScript

谭梓
2023-03-14
问题内容

错误:字符串转义,格式化htmljs由最初编辑,保存htmljs

例如,

a)如果在本地浏览器中打开“ saveFile.html”;

b)输入“ abc” textarea

c)点击save file按钮;

d)单击SaveSave File对话框;

e)file-*[date according to universal time].html保存到磁盘上;

f)file-*[date according to universal time].html在浏览器中打开;

g)在“ def”中输入textarea

h)重复d),e),f);

i)错误:第二个结果file-*[date according to universal time].html确实显示textarea包含“ abc
def”文本内容; button 显示在html

// at rendered `html` from second `file-*[date according to universal time].html`
// `textarea` containing "abc def" displayed here , 
// `button` _not_ displayed ; following string displayed following `textarea`:
');"console.log(clone);var file = new Blob([clone], {'type':'text/html'});a.href = URL.createObjectURL(file);a.download = 'file-' + new Date().getTime() + '.html';a.click();};

在第 26 行生成的“ saveFile.html”

+ "var clone = '<!doctype html>'+ document.documentElement.outerHTML.replace(/<textarea>.*<.+textarea>/, '<textarea>'+document.getElementsByTagName('textarea')[0].value+'<\/textarea>');"

“ saveFile.html” v 1.0.0

脚本

<!doctype html>
<html>
<!-- saveFile.html 1.0.0 2015 guest271314 edit, save `html` document -->
<head>
</head>
<body>
<textarea>
</textarea>
<button>save file</button>
<script type="text/javascript">
var saveFile = document.getElementsByTagName("button")[0];
var input = document.getElementsByTagName("textarea")[0];
var a = document.createElement("a");

saveFile.onclick = function(e) {

  var clone = ["<!doctype html><head></head><body><textarea>"
              + input.value
              + "</textarea>"
              + "<button>save file</button>"
              + "<script type='text/javascript'>"
              + "var saveFile = document.getElementsByTagName('button')[0];"
              + "var input = document.getElementsByTagName('textarea')[0];"
              + "var a = document.createElement('a');"
              + "saveFile.onclick = function(e) {"
              + "var clone = '<!doctype html>'+ document.documentElement.outerHTML.replace(/<textarea>.*<.+textarea>/, '<textarea>'+document.getElementsByTagName('textarea')[0].value+'<\/textarea>');"
              + "console.log(clone);"
              + "var file = new Blob([clone], {'type':'text/html'});"
              + "a.href = URL.createObjectURL(file);"
              + "a.download = 'file-' + new Date().getTime() + '.html';"
              + "a.click();"
              + "};"
              + "</scr"+"ipt>"
              + "</body>"
              + "</html>"];

  var file = new Blob([clone], {"type":"text/html"});  
  a.href = URL.createObjectURL(file);
  a.download = "file-" + new Date().getTime() + ".html";
  a.click();

};
</script>
</body>
</html>

问题答案:

你替换函数替换,直到/textarea>那就是在你的clone变量。它不会从第一个文件开始执行此操作,因为html的textarea之后有换行符。解决它的一种方法是newline在生成的html中添加一个字符。像这样:

var clone = ["<!doctype html><head></head><body><textarea>"
          + input.value
         // add newline here
          + "</textarea>\n"
          + "<button>save file</button>"
          + "<script type='text/javascript'>"
          + "var saveFile = document.getElementsByTagName('button')[0];"
          + "var input = document.getElementsByTagName('textarea')[0];"
          + "var a = document.createElement('a');"
          + "saveFile.onclick = function(e) {"
          + "var clone = '<!doctype html>'+ document.documentElement.outerHTML.replace(/<textarea>.*<.+textarea>/, '<textarea>'+document.getElementsByTagName('textarea')[0].value+'<\/textarea>');"
          + "console.log(clone);"
          + "var file = new Blob([clone], {'type':'text/html'});"
          + "a.href = URL.createObjectURL(file);"
          + "a.download = 'file-' + new Date().getTime() + '.html';"
          + "a.click();"
          + "};"
          + "</scr"+"ipt>"
          + "</body>"
          + "</html>"];


 类似资料:
  • An expert is someone who is one page ahead of you in the manual. — David Knight 像大多数工程师一样,我从来没有阅读过手册,除非或者直到产品实际出现了十万火急的情况。 然而,随着你的配置清单代码不断增多且越来越复杂,使用 Puppet 的自动文档工具 puppet doc 为你的节点(node)和类(class)生成 H

  • 修改文档 你现在已经学会了控制光标、打开文件、切换文件、并在文件中查找内容,这些操作都是在 Vim 的 normal 模式下进行的。现在,是时候进入 Vim 的另外一种模式 —— insert 模式,学习一下如何修改文件了。 插入 i 当前字符前插入 a 当前字符后插入 I 行首插入 A 行尾插入 o 在下一行插入 O 在上一行插入 注意:以上任何一个命令都会使 Vim 进入 insert 模式,

  • 主要内容:HTML 编辑器推荐,VS CodeHTML 编辑器推荐 可以使用专业的 HTML 编辑器来编辑 HTML,小牛知识库为大家推荐几款常用的编辑器: VS Code:https://code.visualstudio.com/ Sublime Text:http://www.sublimetext.com/ 你可以从以上软件的官网中下载对应的软件,按步骤安装即可。 接下来我们将为大家演示如何使用 VS Code 工具来创建 HTML

  • 可以使用专业的 HTML 编辑器来编辑 HTML,本站为大家推荐几款常用的编辑器: Notepad++:https://notepad-plus-plus.org/ Sublime Text:http://www.sublimetext.com/ HBuilder:http://www.dcloud.io/ 你可以从以上软件的官网中下载对应的软件,按步骤安装即可。 接下来我们将为大家演示如何使用N

  • 本文向大家介绍解决IDEA中编辑HTML格式文件不自动缩进问题,包括了解决IDEA中编辑HTML格式文件不自动缩进问题的使用技巧和注意事项,需要的朋友参考一下 在IntelliJ Idea中HTML格式化时,默认<head><body>以及<body>下的标签都不会缩进,这就导致你每次写好html时候格式化的时候所有标签都是同一层级没有缩进,一般我们写html都会层级关系标签嵌套,通过缩进看代码结

  • 在Jquery Mobile中通过默认方法给内容添加样式是很简单的。我们的目标是让浏览器的默认渲染优先进行,然后我们加了一点小小的padding让页面看起来更有可读性,然后应用主题样式系统来分配字体和颜色 采用熟手优先原则给与了设计者和开发者一个干净的空间工作,而不是和一大堆复杂的样式代码战斗。 默认HTML标记样式 Default HTML markup styling 默认情况下,Jquery