Support browser edge

pull/30/head
Sheng 6 years ago
parent 2b57122925
commit 5d1d5e9250

@ -4,6 +4,37 @@ var jQuery;
var wssh = {}; var wssh = {};
(function() {
// For FormData without getter and setter
var proto = FormData.prototype;
proto.data = {};
if (!proto.get) {
proto.get = function (name) {
if (!proto.data[name]) {
var input = document.querySelector('input[name="' + name + '"]'),
value;
if (input) {
if (input.type === 'file') {
value = input.files[0];
} else {
value = input.value;
}
proto.data[name] = value;
}
}
return proto.data[name];
};
}
if (!proto.set) {
proto.set = function (name, value) {
proto.data[name] = value;
};
}
}());
jQuery(function($){ jQuery(function($){
var status = $('#status'), var status = $('#status'),
btn = $('.btn-primary'), btn = $('.btn-primary'),
@ -73,7 +104,7 @@ jQuery(function($){
} }
function read_file_as_text(file, callback, decoder) { function read_as_text_with_decoder(file, callback, decoder) {
var reader = new window.FileReader(); var reader = new window.FileReader();
if (decoder === undefined) { if (decoder === undefined) {
@ -101,6 +132,36 @@ jQuery(function($){
} }
function read_as_text_with_encoding(file, callback, encoding) {
var reader = new window.FileReader();
if (encoding === undefined) {
encoding = 'utf-8';
}
reader.onload = function() {
if (callback) {
callback(reader.result);
}
};
reader.onerror = function (e) {
console.error(e);
};
reader.readAsText(file, encoding);
}
function read_file_as_text(file, callback, decoder) {
if (!window.TextDecoder) {
read_as_text_with_encoding(file, callback, decoder);
} else {
read_as_text_with_decoder(file, callback, decoder);
}
}
function reset_wssh() { function reset_wssh() {
var name; var name;
@ -139,7 +200,7 @@ jQuery(function($){
url = ws_url + join + 'ws?id=' + msg.id, url = ws_url + join + 'ws?id=' + msg.id,
sock = new window.WebSocket(url), sock = new window.WebSocket(url),
encoding = 'utf-8', encoding = 'utf-8',
decoder = new window.TextDecoder('utf-8'), decoder = window.TextDecoder ? new window.TextDecoder(encoding) : encoding,
terminal = document.getElementById('#terminal'), terminal = document.getElementById('#terminal'),
term = new window.Terminal({ term = new window.Terminal({
cursorBlink: true, cursorBlink: true,
@ -175,6 +236,11 @@ jQuery(function($){
return; return;
} }
if (!window.TextDecoder) {
decoder = new_encoding;
encoding = decoder;
console.log('Set encoding to ' + encoding);
} else {
try { try {
decoder = new window.TextDecoder(new_encoding); decoder = new window.TextDecoder(new_encoding);
encoding = decoder.encoding; encoding = decoder.encoding;
@ -183,6 +249,7 @@ jQuery(function($){
console.log('Unknown encoding ' + new_encoding); console.log('Unknown encoding ' + new_encoding);
} }
} }
}
wssh.set_encoding = set_encoding; wssh.set_encoding = set_encoding;
set_encoding(msg.encoding); set_encoding(msg.encoding);

Loading…
Cancel
Save