Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b5109cea
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b5109cea
编写于
1月 15, 2016
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
inherit some basic styles (colors, font) to the iframe
上级
3b76b471
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
30 addition
and
2 deletion
+30
-2
src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
+30
-2
未找到文件。
src/vs/workbench/parts/html/browser/htmlPreviewPart.ts
浏览文件 @
b5109cea
...
@@ -15,8 +15,10 @@ import {EditorOptions, EditorInput} from 'vs/workbench/common/editor';
...
@@ -15,8 +15,10 @@ import {EditorOptions, EditorInput} from 'vs/workbench/common/editor';
import
{
BaseEditor
}
from
'
vs/workbench/browser/parts/editor/baseEditor
'
;
import
{
BaseEditor
}
from
'
vs/workbench/browser/parts/editor/baseEditor
'
;
import
{
Position
}
from
'
vs/platform/editor/common/editor
'
;
import
{
Position
}
from
'
vs/platform/editor/common/editor
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
IStorageService
,
StorageEventType
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
ResourceEditorModel
}
from
'
vs/workbench/common/editor/resourceEditorModel
'
;
import
{
ResourceEditorModel
}
from
'
vs/workbench/common/editor/resourceEditorModel
'
;
import
{
Preferences
}
from
'
vs/workbench/common/constants
'
;
import
{
HtmlInput
}
from
'
vs/workbench/parts/html/common/htmlInput
'
;
import
{
HtmlInput
}
from
'
vs/workbench/parts/html/common/htmlInput
'
;
/**
/**
...
@@ -26,20 +28,24 @@ export class HtmlPreviewPart extends BaseEditor {
...
@@ -26,20 +28,24 @@ export class HtmlPreviewPart extends BaseEditor {
static
ID
:
string
=
'
workbench.editor.htmlPreviewPart
'
;
static
ID
:
string
=
'
workbench.editor.htmlPreviewPart
'
;
private
_iFrameElement
:
HTMLIFrameElement
;
private
_editorService
:
IWorkbenchEditorService
;
private
_editorService
:
IWorkbenchEditorService
;
private
_storageService
:
IStorageService
;
private
_iFrameElement
:
HTMLIFrameElement
;
private
_model
:
IModel
;
private
_model
:
IModel
;
private
_modelChangeUnbind
:
Function
;
private
_modelChangeUnbind
:
Function
;
private
_lastModelVersion
:
number
;
private
_lastModelVersion
:
number
;
private
_themeChangeUnbind
:
Function
;
constructor
(
constructor
(
@
ITelemetryService
telemetryService
:
ITelemetryService
,
@
ITelemetryService
telemetryService
:
ITelemetryService
,
@
IWorkbenchEditorService
editorService
:
IWorkbenchEditorService
@
IWorkbenchEditorService
editorService
:
IWorkbenchEditorService
,
@
IStorageService
storageService
:
IStorageService
)
{
)
{
super
(
HtmlPreviewPart
.
ID
,
telemetryService
);
super
(
HtmlPreviewPart
.
ID
,
telemetryService
);
this
.
_editorService
=
editorService
;
this
.
_editorService
=
editorService
;
this
.
_storageService
=
storageService
;
}
}
dispose
():
void
{
dispose
():
void
{
...
@@ -50,6 +56,8 @@ export class HtmlPreviewPart extends BaseEditor {
...
@@ -50,6 +56,8 @@ export class HtmlPreviewPart extends BaseEditor {
// unhook from model
// unhook from model
this
.
_modelChangeUnbind
=
cAll
(
this
.
_modelChangeUnbind
);
this
.
_modelChangeUnbind
=
cAll
(
this
.
_modelChangeUnbind
);
this
.
_model
=
undefined
;
this
.
_model
=
undefined
;
this
.
_themeChangeUnbind
=
cAll
(
this
.
_themeChangeUnbind
);
}
}
public
createEditor
(
parent
:
Builder
):
void
{
public
createEditor
(
parent
:
Builder
):
void
{
...
@@ -67,6 +75,12 @@ export class HtmlPreviewPart extends BaseEditor {
...
@@ -67,6 +75,12 @@ export class HtmlPreviewPart extends BaseEditor {
iFrameContainerElement
.
appendChild
(
this
.
_iFrameElement
);
iFrameContainerElement
.
appendChild
(
this
.
_iFrameElement
);
parent
.
getHTMLElement
().
appendChild
(
iFrameContainerElement
);
parent
.
getHTMLElement
().
appendChild
(
iFrameContainerElement
);
this
.
_themeChangeUnbind
=
this
.
_storageService
.
addListener
(
StorageEventType
.
STORAGE
,
event
=>
{
if
(
event
.
key
===
Preferences
.
THEME
&&
this
.
isVisible
())
{
this
.
_updateIFrameContent
(
true
);
}
});
}
}
public
layout
(
dimension
:
Dimension
):
void
{
public
layout
(
dimension
:
Dimension
):
void
{
...
@@ -165,6 +179,8 @@ export class HtmlPreviewPart extends BaseEditor {
...
@@ -165,6 +179,8 @@ export class HtmlPreviewPart extends BaseEditor {
// diff a little against the current input and the new state
// diff a little against the current input and the new state
const
parser
=
new
DOMParser
();
const
parser
=
new
DOMParser
();
const
newDocument
=
parser
.
parseFromString
(
html
,
'
text/html
'
);
const
newDocument
=
parser
.
parseFromString
(
html
,
'
text/html
'
);
newDocument
.
head
.
appendChild
(
Integration
.
defaultStyle
(
this
.
_iFrameElement
.
parentElement
));
if
(
newDocument
.
head
.
innerHTML
!==
iFrameDocument
.
head
.
innerHTML
)
{
if
(
newDocument
.
head
.
innerHTML
!==
iFrameDocument
.
head
.
innerHTML
)
{
iFrameDocument
.
head
.
innerHTML
=
newDocument
.
head
.
innerHTML
;
iFrameDocument
.
head
.
innerHTML
=
newDocument
.
head
.
innerHTML
;
}
}
...
@@ -245,4 +261,16 @@ namespace Integration {
...
@@ -245,4 +261,16 @@ namespace Integration {
];
];
return
all
.
join
(
'
\n
'
);
return
all
.
join
(
'
\n
'
);
}
}
export
function
defaultStyle
(
element
:
HTMLElement
):
HTMLStyleElement
{
const
styles
=
window
.
getComputedStyle
(
element
);
const
styleElement
=
document
.
createElement
(
'
style
'
);
styleElement
.
innerHTML
=
`* {
color:
${
styles
.
color
}
;
background:
${
styles
.
background
}
;
font-family:
${
styles
.
fontFamily
}
;
font-size:
${
styles
.
fontSize
}
}`
;
return
styleElement
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录