问题标签 [html-imports]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1161 浏览

html - 在“相同类型”的 Web 组件之间共享样式

如果我理解正确,创建 Web 组件的实例可以总结为创建影子根并复制标记,例如从模板到其中:

当然,如果模板在样式标签中包含 css 规则,这些规则也会被复制。因此,我们可以拥有属于 Web 组件内部标记的范围样式。

问题:

  1. 当我创建大量同一个 Web 组件的实例时,它是否会对性能产生影响,因为样式只是被复制而不是重用?
  2. 有没有办法在同一个 Web 组件的多个实例之间共享样式节点?
0 投票
1 回答
77 浏览

javascript - 将输入附加到导入的 DOM 元素后,它被禁用

我的问题是当我尝试附加一个输入框时,它变得不活动。我的意思是我不能把任何东西放进去。

我正在使用 HTML 导入并将输入附加到导入的元素中

背景.html

0 投票
1 回答
286 浏览

javascript - HTML 导入加载顺序怪癖?

嘿!

我很难理解 HTML 导入的特定行为。我只是在导入中交换一行并获得完全不同的输出。

所以这就是我得到的……</p>

索引.html

元素-a.html

元素-b.html

元素-c.html

我还制作了一支钢笔。现在让我感到困惑的是:如果我element-a 导入,我会得到以下输出:

注册
升级 a
say() 未定义
undefined: (2) [element-b, element-c]
注册 b
升级 b
注册 c
升级 c
准备就绪
say() 已定义

但是如果我最后导入它,我会得到完全不同的输出和注册升级的顺序。

注册 b
注册 c
注册 a
升级 a
升级 b
升级 c
say() 已定义
undefined: []
ready
say() 已定义

这是为什么?我有点希望最后一个输出总是会发生。它与 slotting/Shadow DOM 有关吗?

0 投票
1 回答
862 浏览

javascript - 当一切正常时,为什么 importNode 不执行?

我想使用 HTML 导入,所以我创建了两个文件。
文件1:

文件2:

当我执行 File2 时,我应该看到一个黄色方块,但我收到了这个错误:

Uncaught TypeError: Failed to execute 'importNode' on 'Document': parameter 1 is not of type 'Node'. at Import.html:8

当我将“测试”变量记录到控制台时,我得到了包含 File1 的文档,所以那里没问题。我只是不明白错误应该是什么意思以及为什么它不起作用。

0 投票
1 回答
598 浏览

javascript - 如何从 DOM 错误事件中获取详细消息

我正在尝试了解 Chrome 的 html 导入实现,例如

然而,错误事件并没有真正传达MDN中指定的有用信息。我想知道是否有任何方法可以从错误事件中获得更多信息,例如失败原因和 HTTP 状态代码。

0 投票
4 回答
2857 浏览

javascript - html导入不起作用

我一直在为我的公司编写一个新的 Intranet,并希望能够将大量文件导入同一页面,以便仍然可以轻松编辑信息。但是,当我尝试直接打开文件而不是通过 Visual Studios 打开文件时,文件不会导入。

我写这篇文章的方式有问题还是因为其他原因它不起作用?

编辑:对于遇到与 html 导入相同问题的任何人,经过进一步研究,我建议使用 MVC 框架,因为它具有更简单有效的导入方法。

0 投票
1 回答
1134 浏览

javascript - 如何使用 html-imports 加载带有 javascript 异步调用的 html 页面

我试图加载 HTML 页面,它有它自己的数据和 ajax 调用来渲染视图html-import,但问题是当导入发生时视图尚未完成渲染,有没有办法知道视图何时完成调用和渲染其所有元素

0 投票
0 回答
223 浏览

javascript - HTML 导入:删除导入

我在一个 WebApp 上工作,它通过 XHR 动态加载*.html文件,将文件<body>作为字符串添加到带有insertAdjacentHTML. 它对文件 JavaScript 和evalscirpt 标签内容执行相同的操作。(文件中有注释表示相关部分的开始结束。)

我正在评估切换到 HTML 导入的可能性。我希望它更快,因为它使用本机函数,并进行所有解析等。

因为随着时间的推移我正在加载和卸载数百个文件,所以我需要确保一旦我不再需要我导入的文件就完全从 DOM 中删除它们。(因为可能的内存泄漏)。

删除<link>标签(和附加的内容)是否足够,还是我需要做更多?

0 投票
3 回答
246 浏览

javascript - HTML 导入是否提供任何形式的 Javascript 封装?

我刚刚阅读了有关使用 HTML 导入进行组件封装的内容。

<link rel=import href="import.html">

该文件import.html将包含组件所需的所有内容。

但是,一个大问题:内部的 Javascript 函数和变量import.html成为window命名空间的一部分,这意味着没有任何封装。
碰巧具有同名函数的两个不同组件将发生冲突,并且其中一个函数将被覆盖。

HTML 导入是否提供了以前不存在的任何形式的 javascript 封装?


例子:

main.html

import1.html

import2.html

0 投票
5 回答
412 浏览

javascript - 在没有 Roboto 的情况下使用 Polymer

--paper-font-common-base在加载任何组件之前,我有一个明确指定的 Polymer 2 应用程序:

然后,在加载 Polymer 组件时,例如paper-dialog,将导入typography.html

依次typography.html 导入 Roboto覆盖 mixin

这会覆盖我指定的字体,但也会从Google 的 CDN下载 Roboto ,我明确不希望它这样做。

例如,其他 Polymer 组件paper-radio-button采用不同的方法:

如何设置--paper-font-common-base以便 Polymer 组件使用与我的应用程序其余部分相同的字体?