在Polymer元素中隐式调整href的规则是什么?

时间:2014-04-21 20:08:23

标签: polymer

我注意到<a>元素上的href属性会在Polymer元素定义中自动调整,但我没有看到任何记录。大多数调整是无害的,但有时它是一个微妙的错误来源。

http://jsbin.com/kelun/2/edit。该文档包含两个链接,在轻型DOM中,一个在<polymer-element>内。两者都指向href=".."。在运行时(在生产Chrome或Canary中),第一个链接保持不变,但第二个链接将其静默修改为href(没有目的地)。

虽然这个例子是设计的,但是我有一些页面组件想要出于各种原因检查自己的链接。这些神秘修改的href导致代码失败。例如,如果名为foo.html的页面有自己的链接,则会以静默方式删除href中的链接目标。

此href修改是否为错误或功能?如果这是故意的,那么如何修改href的规则是什么。我可以把它关掉吗?

1 个答案:

答案 0 :(得分:1)

进口设计为可重新定位。 IOW,我可以使用<img src="foo.png">进行导入,并将foo.png放在与导入相同的文件夹中,项目可以使用该导入并访问图像而不会破坏路径。

Polymer通过(尝试)使模板内部的路径也是import-relative进一步采取这一步骤。这样我就可以将<img src="foo.png">放在我的模板中并具有与上面相同的行为。

重写主文档中<polymer-element>中的路径是一个错误。任何不会导致正确的导入相对路径的路径修改都是一个错误。听起来像你在这里遇到一些错误,建议你提交发票。

附加说明:

  1. 直到最近,任何包含绑定的网址都保持不变。我相信最新版本会改为将这些网址转换为导入相关网址,如果网址首先是明确相对的。

  2. 如果您需要命令性地计算元素来源的路径,您可以使用内置于每个聚合物元素的resolvePath方法。 IOW,像这样:var documentRelativePathToFoo = this.resolvePath('foo.png');。这会从foo.png的角度计算window.document的正确路径,这是大多数DOM操作(例如XHR)的视角。