首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >documentFragment转换为JSON格式

documentFragment转换为JSON格式
EN

Stack Overflow用户
提问于 2018-12-19 14:05:57
回答 3查看 652关注 0票数 2

你能帮我把documentFragment对象转换成JSON格式吗?我需要它向iframe发送documentFragment的信息。这是我的密码:

代码语言:javascript
复制
  var range = window.getSelection().getRangeAt(0);
  var fragment = range.cloneContents(); 
 console.log(JSON.stringify(fragment));

但是它不工作(输出空对象{} )。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-19 14:24:10

JSON用于数据对象,而不是文档片段。

您可能需要HTML字符串,而不是:

代码语言:javascript
复制
var range = window.getSelection().getRangeAt(0);
var fragment = range.cloneContents();

// convert to html by appending the fragment to a DOM element and then read the element's innerHTML:
var div = document.createElement('div');
div.appendChild(fragment);
console.log(div.innerHTML);
票数 1
EN

Stack Overflow用户

发布于 2018-12-19 14:30:38

如果您想要JSON格式,只需先获得innerHTML,然后使用JSON.stringify将其转换为json字符串:

代码语言:javascript
复制
var range = window.getSelection().getRangeAt(0);
var fragment = range.cloneContents(); 

var div = document.createElement('div');
div.appendChild(fragment);
var selectedText = div.innerHTML;

console.log(
   JSON.stringify({ text: selectedText })
)
票数 0
EN

Stack Overflow用户

发布于 2018-12-19 14:52:55

代码语言:javascript
复制
var range = window.getSelection().getRangeAt(0);
var fragment = range.cloneContents(); 

var text = "";

// Get all the elements as text
for (i in fragment.children) {
    text += fragment.children[i].outerHTML || "";
}

// JSON format
var json = JSON.stringify({text: text});

// JSON text
console.log(json);

// JSON text to HTML
console.log(
    $(JSON.parse(json).text)
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53852927

复制
相关文章

相似问题

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