如何在其他使用聚合物的浏览器中启用HTML导入?

时间:2015-10-30 07:53:26

标签: javascript html polymer web-component html-imports

作为标题,我在我的网站中使用了HTML导入链接:

<link rel="import" href="http://XX.XX.XX.XX/">
<script type="text/javascript">
    var link = document.querySelector('link[rel="import"]');
var content = link.import;

// Grab DOM from warning.html's document.
var el = content.querySelector('body');
</script>

方差&#34;链接&#34;在Chrome中返回文档,但在Safari和其他浏览器中返回null。我知道HTML目前只支持HTML导入功能,所以我在导入链接之前添加了以下代码来加载Polymer的webcomponents.js:

<script src="../webcomponentsjs/webcomponents-lite.js"></script>

但它仍然在其他浏览器中返回null,有人可以告诉我如何修复它吗?

1 个答案:

答案 0 :(得分:0)

这是因为<link>请求是异步的。

抓住 HTMLImportsLoaded 事件,仅在浏览器加载文件时解析文件:

<script src="../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="http://XX.XX.XX.XX/XX/warning.html">
<script type="text/javascript">
window.addEventListener( "HTMLImportsLoaded", function () 
{
    var link = document.querySelector('link[rel="import"]');
    var content = link.import;

    // Grab DOM from warning.html's document.
    var el = content.querySelector('body');
} )
</script>