Skip to content

Commit

Permalink
Support browser edge
Browse files Browse the repository at this point in the history
  • Loading branch information
huashengdun committed Sep 13, 2018
1 parent 2b57122 commit 5d1d5e9
Showing 1 changed file with 74 additions and 7 deletions.
81 changes: 74 additions & 7 deletions webssh/static/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,37 @@ var jQuery;
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($){
var status = $('#status'),
btn = $('.btn-primary'),
Expand Down Expand Up @@ -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();

if (decoder === undefined) {
Expand Down Expand Up @@ -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() {
var name;

Expand Down Expand Up @@ -139,7 +200,7 @@ jQuery(function($){
url = ws_url + join + 'ws?id=' + msg.id,
sock = new window.WebSocket(url),
encoding = 'utf-8',
decoder = new window.TextDecoder('utf-8'),
decoder = window.TextDecoder ? new window.TextDecoder(encoding) : encoding,
terminal = document.getElementById('#terminal'),
term = new window.Terminal({
cursorBlink: true,
Expand Down Expand Up @@ -175,12 +236,18 @@ jQuery(function($){
return;
}

try {
decoder = new window.TextDecoder(new_encoding);
encoding = decoder.encoding;
if (!window.TextDecoder) {
decoder = new_encoding;
encoding = decoder;
console.log('Set encoding to ' + encoding);
} catch (RangeError) {
console.log('Unknown encoding ' + new_encoding);
} else {
try {
decoder = new window.TextDecoder(new_encoding);
encoding = decoder.encoding;
console.log('Set encoding to ' + encoding);
} catch (RangeError) {
console.log('Unknown encoding ' + new_encoding);
}
}
}

Expand Down

0 comments on commit 5d1d5e9

Please sign in to comment.