2016-11-12 45 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可能有幫助 –

相關問題