我希望有条件地用聚合物进口一些东西。如何建立如下的东西。
<html>
<head>
<link rel="import" href="polyfill-geolocation.html">
</head>
<body>
<script>
// I can use geo
navigator.geolocation.getCurrentPosition(callback);
</script>
</body>
</html>
modernizr-geolocation.html会有条件地检查和加载。
<script>
if (!navigator.geolocation) {
// load the geolocation-polyfill.js
// and defer execution of the html import till it is ready
// then execute in order.
}
</script>
如果我不需要它,我不想下载polyfill而且我不想在我的主中等待一个oncomplete事件的条件回调。也许这是不可能的?
答案 0 :(得分:4)
推迟执行html导入,直到它准备好然后按顺序执行。
如果您愿意在脚本标记中同步加载(并评估)geo-location-polyfill.js
,它将阻止执行将来的脚本标记并使您的示例正常工作。
最好在某种ready
事件上关闭文档脚本,然后让事情异步进行。
有关动态导入的一些信息:
您可以通过强制创建<link>
代码并将其附加到<head>
来动态使用导入。
导入将在加载后立即解析。如果要捕获加载完成,链接标记将触发load
事件。
或者,您可以使用Polymer.import
方法:
Polymer.import(arrayOfUrls, completionCallback);
示例:
Polymer.import(['a.html', 'b.html'], function() {
// a and b have loaded now
});