问题标签 [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 投票
2 回答
2975 浏览

javascript - 升级自定义元素时如何执行脚本

我已经定义了一个自定义元素,并且我只想在自定义元素升级到其注册类型时才执行脚本。用例是我必须调用自定义方法。

我的主 html 文件如下所示:

自定义元素在 HTML 导入中注册,如下所示:

我的问题很简单:如何确保仅在自定义元素获得其custom_method方法后才调用主 html 文件中的脚本?

我正在寻找一个优雅的解决方案。规范作者会想到的东西。我不介意改变架构(例如,如果有必要,将 javascript 从主文件移动到另一个自定义元素中)。

0 投票
1 回答
160 浏览

html - 标签内重复的 HTML 元素

当我使用 HTML 导入时,我看到:

在此处输入图像描述

这是否意味着我仍然有一个 html元素,一个 head一个 body

或者,取而代之的是,这些元素重复了?

索引.html

零件.html

0 投票
1 回答
132 浏览

javascript - 使用 webcomponenetsjs 的 HTMLImports 以意外的执行顺序加载导入 - firefox

我是 webcomponenetsjs 的新手,我一直在尝试使用 HTMLImports 将另一个 HTML 导入我的 index.html。由于 chrome 支持 HTML 导入,我对此没有任何问题。但是,当我尝试使用 firefox 进行相同操作时,HTML 导入无法按预期工作。问题是它加载了所有的 HTML 元素,加载了所有的脚本,然后只加载了 |link rel="import"|。开始执行导入。为了更清楚,以下是触发警报的顺序: 1.在

供应商
之后 2.在导入之前
3.在 vendor.js 中警报
4.在 test.html 中警报。

默认情况下,html 导入的执行就像

1.alert 在 vendor.js
2. 在供应商之后
3. 在 import.js 之前
4.alert 在 test.html 中。

当然,它在 chrome 中的工作顺序相同。对我所缺少的任何帮助将不胜感激。

0 投票
1 回答
145 浏览

css - Polyfill HTML 导入:为什么没有获取 CSS?

我试图让 HTML Imports 工作,但到目前为止只有部分运气。具有原生支持的 Chrome 做得很好,但在例如带有来自 webcomponents.org 的 Polyfill 的 Firefox 中,甚至没有获取 CSS,我在开发人员工具的网络部分验证了这一点。JS 按预期加载。

这是我正在做的一个最小的例子:

我需要做一些额外的事情来处理 polyfill 环境中的 CSS 吗?

我很确定与 CORS 相关的阻塞不是问题,因为相同的设置适用于 Chrome。非常感谢任何正确方向的指针。

0 投票
0 回答
95 浏览

javascript - Polymer:加载 html 导入时浏览器渲染停止

当像这样加载一个巨大的硫化 html 导入时: <link rel="import" src="elements.html"/> 浏览器渲染完全被阻止(这意味着即使是简单的加载动画也不可能)。添加 async="true" 稍微改善了这种情况,但加载时非常滞后,因此无用。在进行(持续几秒钟)html 导入工作时,如何向用户显示一个像样的加载屏幕?

0 投票
0 回答
419 浏览

web-component - 如何模拟 HTML 导入以进行测试

我正在为我的自定义元素编写测试。我使用Web Component Tester,所以使用 Sinon.js 进行模拟会很棒。

我的自定义元素<link rel="import" href="something.html">动态添加。

我如何存根内容something.html

0 投票
1 回答
2423 浏览

javascript - `HTMLImports.whenReady` 和 `window.addEventListener('WebComponentsReady', function(e) {` 有什么区别?

HTMLImports.whenReady 和 和有什么不一样window.addEventListener('WebComponentsReady', function(e) {

Polymer 的官方文档说:

“要在主 HTML 文档中定义元素,请从 HTMLImports.whenReady(callback) 中定义元素。当文档中的所有导入完成加载时调用回调。”

Webcomponents.org 关于导入的官方文档说:

在原生导入下,主文档中的标签会阻止导入的加载。这是为了确保导入已加载并且其中的任何注册元素都已升级。这种原生行为很难 polyfill,因此 HTML Imports polyfill 不会尝试。相反,WebComponentsReady 事件代表了这种行为:

两者有什么区别?

0 投票
1 回答
10162 浏览

html - 如果 HTML 导入已失效/已弃用,那么导入 Web 组件(X-Tag)模板的最佳方式是什么?

我正在开发我的第一个 X-Tag 应用程序,在它的页面上它说它可以与 Web 组件 API 一起使用,例如“自定义元素、Shadow DOM、模板和 HTML 导入”。

我已经开始处理我的模板,但是既然 HTML 导入已被弃用,那么导入它们的最佳选择是什么?

0 投票
1 回答
574 浏览

angularjs - 使用 jasmine/karma 在 PhantomJS 中导入角度组件

以下单元测试在 Chrome 中工作(由于它对 HTML 导入的本机支持),但我正在努力让它与 PhantomJS(以及其他浏览器)一起工作。

我正在尝试填充导入('webcomponents.js/HTMLImports.min.js'),但它没有任何效果。

业力.conf.js

组件/so-example.html

测试/test.spec.js

来自 PhantomJS 的错误

0 投票
1 回答
127 浏览

javascript - 聚合物升级后,当作为 HTML 导入加载时,会创建两次复选框

问题

我将聚合物从 0.5 升级到 1.5,纸质复选框现在出现了两次。

进步

我尝试运行 polyup 并浏览了整个聚合物升级指南,但没有一个程序解决了这个问题。我确实发现了两件事:

1.

正常工作时,html看起来像

我发现在我的情况下它看起来像

这使我相信聚合物正在两次处理纸张复选框。但是,我仔细检查了,我没有多次加载 paper-checkbox.html,这是我在这方面唯一的想法。

2.

主要内容在一个飞入中,其部分作为 html 导入加载。我发现导入的 html 中的纸质复选框表现出这种行为,但是如果我将纸质复选框硬编码到飞入中,它可以正常工作。

问题

什么会导致聚合物尝试处理纸张复选框两次?html 导入可能会导致这种情况怎么办?

编辑:

应托尼的要求转储代码。

默认.html

import.js 相关函数