2016-11-12 30 views
1

我有这两种功能:错误:错误瘦长WrappedRange模块:createRange():参数必须是一个窗口对象或DOM节点

function menuItemListener(link) { 
var side = link.getAttribute("data-action"); 
if (side == 'Mark as A' || side == 'Mark as B') { 
    highlighter(side); 
    $.ajax({ 
    method: "POST", 
    url: "http://localhost:3000/", 
    dataType: "json", 
    data: JSON.stringify({"rangyobject" : rangy.saveSelection()}), 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
     console.log('yei'); 
    } 
    }); 
} 
toggleMenuOff(); 
} 

function loadHighlights() { 
window.addEventListener("load", function load(event){ 
$.ajax({ 
    method: "GET", 
    url: "http://localhost:3000/ranges", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    success: function(result) { 
    console.log('loadHighlights results: ', result[0].rangyObject); 
    rangy.restoreSelection(result[0].rangyObject); 
    } 
    }); 

},假); };

因此,它只是简单地在数据库中存储rangy.saveSelection(),然后将其恢复并尝试在其第一个元素上使用rangy.restoreSelection。 的执行console.log看起来不错,但我在控制台收到一个错误:

错误:错误瘦长WrappedRange模块:createRange():参数必须是一个Window对象或DOM节点

回答

-1
  1. rangy.saveSelection()看起来像这样在控制台:

    {赢:未定义,rangeInfos:数组,恢复:假}

  2. 注意 “WIN:未定义”

  3. 当我将它发送到数据库中,我使用

    数据:JSON.stringify({ “rangyObject”:rangy.saveSelection()})

  4. 当从数据库中检索它回到它看起来像:

    {rangeInfos:数组,恢复:假}

  5. 请注意, '双赢' 被保存到数据库

我能省略使用序列化和反序列化函数来规避这个问题,但是这些不会创建id与他们创建的跨度,所以我遇到了另一个问题。

+0

@TimDown可能有帮助 –

相关问题