Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态加载Web组件/HTML导入?_Javascript_Html_Polymer_Web Component_Dynamic Script Loading - Fatal编程技术网

Javascript 动态加载Web组件/HTML导入?

Javascript 动态加载Web组件/HTML导入?,javascript,html,polymer,web-component,dynamic-script-loading,Javascript,Html,Polymer,Web Component,Dynamic Script Loading,您将如何动态加载web组件—例如响应url路由更改 我不会提前知道所请求的组件,所以您是否可以简单地使用JavaScript编写HTML导入,然后将代码添加到页面中,或者这是否意味着什么?也许谷歌聚合物有帮助?嗨,我在谷歌聚合物集团问过这个问题。 并且是针对这篇文章的 这清楚地表明,您可以通过将元素添加到dom或以编程方式动态实例化元素。但是,这似乎意味着您已经在运行时加载了html导入。我认为我们都想要实现的是使用ajax加载html导入(包括额外的css和js),然后添加我们的元素。我将

您将如何动态加载web组件—例如响应url路由更改


我不会提前知道所请求的组件,所以您是否可以简单地使用JavaScript编写HTML导入,然后将代码添加到页面中,或者这是否意味着什么?也许谷歌聚合物有帮助?

嗨,我在谷歌聚合物集团问过这个问题。

并且是针对这篇文章的


这清楚地表明,您可以通过将元素添加到dom或以编程方式动态实例化元素。但是,这似乎意味着您已经在运行时加载了html导入。我认为我们都想要实现的是使用ajax加载html导入(包括额外的css和js),然后添加我们的元素。我将链接回polymer support论坛,看看是否可以在这里找到答案。

考虑到自定义元素,您可以随时调用
document.registerement
。所以从这个角度来看,您可以使用任何已知的方法动态加载脚本,并拥有动态自定义元素

现在,关于HTML导入:

您是否可以简单地使用JavaScript编写HTML导入,然后添加 将代码添加到页面

是的,这是基本的想法

最新版本的HTML导入polyfill支持动态链接标记。瞧,你能行

var link = document.createElement('link');
link.setAttribute('rel', 'import');
link.setAttribute('href', some_href);
link.onload = function() {
  // do stuff with import content
};
document.body.appendChild(link);
此外,Polymer还增强了对该功能的支持,即一种必要的api,如下所示:

Polymer.import([some_href], function() {
  // called back when some_href is completely loaded, including
  // external CSS from templates
});

第一个参数是数组,因此您可以请求多个HREF。

很抱歉重新激活此参数:但您是否进一步了解了此参数?如果您正在构建chrome扩展/应用程序,您将需要使用前者,而不是后者,因为此问题: