作为标题,我在我的网站中使用了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,有人可以告诉我如何修复它吗?
答案 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>