This commit is contained in:
parent
2ae2bb0d52
commit
9a135bb7ef
1 changed files with 19 additions and 10 deletions
29
app/stage/protyle/js/protyle-html.js
vendored
29
app/stage/protyle/js/protyle-html.js
vendored
|
@ -1,5 +1,5 @@
|
|||
class ProtyleHtml extends HTMLElement {
|
||||
constructor() {
|
||||
constructor () {
|
||||
super()
|
||||
const shadowRoot = this.attachShadow({mode: 'open'})
|
||||
this.display = this.shadowRoot
|
||||
|
@ -7,22 +7,31 @@ class ProtyleHtml extends HTMLElement {
|
|||
this.display.innerHTML = dataContent
|
||||
}
|
||||
|
||||
static get observedAttributes() {
|
||||
static get observedAttributes () {
|
||||
return ['data-content']
|
||||
}
|
||||
|
||||
attributeChangedCallback(name, oldValue, newValue) {
|
||||
attributeChangedCallback (name, oldValue, newValue) {
|
||||
if (name === 'data-content') {
|
||||
const dataContent = Lute.UnEscapeHTMLStr(this.getAttribute('data-content'))
|
||||
const dataContent = Lute.UnEscapeHTMLStr(
|
||||
this.getAttribute('data-content'))
|
||||
this.display.innerHTML = dataContent
|
||||
|
||||
const el = document.createElement('div');
|
||||
el.innerHTML = dataContent;
|
||||
const scripts = el.getElementsByTagName("script")
|
||||
const el = document.createElement('div')
|
||||
el.innerHTML = dataContent
|
||||
const scripts = el.getElementsByTagName('script')
|
||||
let fatalHTML = ''
|
||||
for (let i = 0; i < scripts.length; i++) {
|
||||
const s = document.createElement('script');
|
||||
s.textContent = scripts[i].textContent;
|
||||
this.display.appendChild(s);
|
||||
const s = document.createElement('script')
|
||||
if (scripts[i].textContent.indexOf('document.write') > -1) {
|
||||
fatalHTML += `<div style="color:#d23f31;font-size: 12px">${window.siyuan.languages.htmlBlockError}</div><textarea style="width: 100%;box-sizing: border-box;height: 120px"><script>${scripts[i].textContent}</script></textarea>`
|
||||
} else {
|
||||
s.textContent = scripts[i].textContent
|
||||
}
|
||||
this.display.appendChild(s)
|
||||
}
|
||||
if (fatalHTML) {
|
||||
this.display.innerHTML += fatalHTML
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue