私はnode + electronを使ってデスクトップアプリケーションを構築しています。 DOMのUI要素をコンテナ化する方法が必要でした。フロントエンドでHTMLを解析するのは悪いフォームですか?
他のTypescript DOM要素で拡張できるこの解決策を思いつきました。
私のコードは効果的に実行されます。これはTypescriptの適切な使用ですか?
誰かがすでに書いたライブラリを書き直していますか? オブジェクトスコープのグローバル変数が許可されていないため、私はReactを使用しませんでした。
フロントエンドでHTMLを解析するのは悪いフォームですか?
class Glyph {
//field
uuid:string;
//constructor
constructor(parent:string, html:string) {
this.uuid = this.guid();
var regex = /(<([^>]+>))/ig
var tags = html.match(regex);
var position = tags[0].search(/>/ig);
tags[0] = [tags[0].slice(0, position), ' id="'+ this.uuid +'"', tags[0].slice(position)].join('');
html = tags.join('');
//appends child to the provided parent id
document.getElementById(parent).innerHTML += html;
}
guid():string {
return this.s4() + this.s4() + '-' + this.s4() + '-' + this.s4() + '-' +
this.s4() + '-' + this.s4() + this.s4() + this.s4();
}
s4():string {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
replaceElement(html):void {
var currentElement = document.getElementById(this.uuid);
currentElement.outerHTML = html;
}
deleteElement():void {
var child = document.getElementById(this.uuid);
var parent = document.getElementById(this.uuid).parentElement;
parent.removeChild(child);
}
}
https://stackoverflow.com/a/1732454/1687909 – Mogzol
ブラウザは文字通りHTMLパーサーです –
オブジェクトスコープのグローバル変数は使用できません。それはどういう意味ですか? – azium