2017-02-17 9 views
1

js-applicationの状態(1つのjsオブジェクト)をjson文字列としてファイルに保存しようとしていて、後で再び読み込むことができます。長いjsonをInternet Explorer 11のファイルに保存できません

私は今、奇妙な部分をこのコード

function SaveAsFile(t,f,m) { 
    try { 
    var b = new Blob([t],{type:m}); 
    saveAs(b, f); 
    } catch (e) { 
    window.open("data:"+m+"," + encodeURIComponent(t), '_blank',''); 
    } 
} 

function download(text) { 
    SaveAsFile(text,"filename.txt","application/json;charset=utf-8"); 
} 

$('#saveButton').on('click', function(e) { 
    download(JSON.stringify(appData)); 
}); 

を使用しています:それは完全に正常に動作

{ 
    "treeData": { 
    "id": "root", 
    "name": "Sicherung", 
    "data": { 
     "isLeaf": false, 
     "l": 0, 
     "A": 1, 
     "R": 0, 
     "Rsum": 0, 
     "I": 0, 
     "dUNormal": 0, 
     "danger": false, 
     "uRest": 24 
    }, 
    "children": [] 
    }, 
    "config": { 
    "voltage": 24, 
    "iFuse": 2, 
    "temperature": 30 
    } 
} 

:のような短いJSONを保存する場合。

しかし、私のような長いJSONを保存しよう:

{ 
    "treeData": { 
    "id": "root", 
    "name": "Sicherung", 
    "data": { 
     "isLeaf": false, 
     "l": 0, 
     "A": 1, 
     "R": 0, 
     "Rsum": 0, 
     "I": 0, 
     "dUNormal": 0, 
     "danger": false, 
     "uRest": 24 
    }, 
    "children": [{ 
     "id": "9a7fa260-5369-e041-a79f-408ec0f181cd", 
     "name": "___", 
     "data": { 
     "isLeaf": false, 
     "l": 0, 
     "A": 0, 
     "R": null, 
     "Rsum": null, 
     "I": 0, 
     "dUNormal": null, 
     "danger": false, 
     "uRest": null 
     }, 
     "children": [{ 
     "id": "00c6b684-8914-6535-2baf-b93d11fdaa1b", 
     "name": "___", 
     "data": { 
      "isLeaf": false, 
      "l": 0, 
      "A": 0, 
      "R": null, 
      "Rsum": null, 
      "I": 0, 
      "dUNormal": null, 
      "danger": false, 
      "uRest": null 
     }, 
     "children": [{ 
      "id": "24ebdc15-44c9-1dea-043d-7af2a696ccf3", 
      "name": "___", 
      "data": { 
      "isLeaf": false, 
      "l": 0, 
      "A": 0, 
      "R": null, 
      "Rsum": null, 
      "I": 0, 
      "dUNormal": null, 
      "danger": false, 
      "uRest": null 
      }, 
      "children": [{ 
      "id": "abd73f4e-896e-4c3f-d3f0-fe0905b0f63d", 
      "name": "___", 
      "data": { 
       "isLeaf": false, 
       "l": 0, 
       "A": 0, 
       "R": null, 
       "Rsum": null, 
       "I": 0, 
       "dUNormal": null, 
       "danger": false, 
       "uRest": null 
      }, 
      "children": [{ 
       "id": "907d4323-758e-e796-6f59-f45220fe4c72", 
       "name": "___", 
       "data": { 
       "isLeaf": false, 
       "l": 0, 
       "A": 0, 
       "R": null, 
       "Rsum": null, 
       "I": 0, 
       "dUNormal": null, 
       "danger": false, 
       "uRest": null 
       }, 
       "children": [{ 
       "id": "89a3000f-e915-fde6-6b20-02678ae70720", 
       "name": "___", 
       "data": { 
        "isLeaf": false, 
        "l": 0, 
        "A": 0, 
        "R": null, 
        "Rsum": null, 
        "I": 0, 
        "dUNormal": null, 
        "danger": false, 
        "uRest": null 
       }, 
       "children": [{ 
        "id": "301d3a64-fec2-f19d-8513-cf0fc2bc88be", 
        "name": "___", 
        "data": { 
        "isLeaf": false, 
        "l": 0, 
        "A": 0, 
        "R": null, 
        "Rsum": null, 
        "I": 0, 
        "dUNormal": null, 
        "danger": false, 
        "uRest": null 
        }, 
        "children": [{ 
        "id": "b477b73c-184b-eb61-973a-2fbb3617d2d7", 
        "name": "___", 
        "data": { 
         "isLeaf": false, 
         "l": 0, 
         "A": 0, 
         "R": null, 
         "Rsum": null, 
         "I": 0, 
         "dUNormal": null, 
         "danger": false, 
         "uRest": null 
        }, 
        "children": [] 
        }] 
       }] 
       }] 
      }] 
      }] 
     }] 
     }] 
    }] 
    }, 
    "config": { 
    "voltage": 24, 
    "iFuse": 2, 
    "temperature": 30 
    } 
} 

IE11は、私が原因のセキュリティ設定にこのファイルをダウンロードすることができないことを要求します。

クロム短く長いjsons文字列で動作します。 Unfortunatelly私はie11で動作する必要があります。

  • これを解決する方法はありますか?
  • どのセキュリティ設定でこのエラーが発生しますか?
  • 別の方法で保存できますか?

ありがとうございました!

答えて

0

他に誰かがこの問題を抱えている場合は、私の解決策です。

私は実際の問題を見つけることができませんでしたが、私は別のアプローチでそれを解決:

function download(text) { 
    if (isIE()) { 
     var targetPath = $('#ieTargetPath').val(); 

     var fso = new ActiveXObject("Scripting.FileSystemObject"); 

     var s = fso.CreateTextFile(targetPath, true, true); 
     s.WriteLine(text); 
     s.Close(); 
    } else { 
     ... 
    } 
} 
関連する問題