我注意到<a>
元素上的href属性会在Polymer元素定义中自动调整,但我没有看到任何记录。大多数调整是无害的,但有时它是一个微妙的错误来源。
见http://jsbin.com/kelun/2/edit。该文档包含两个链接,在轻型DOM中,一个在<polymer-element>
内。两者都指向href=".."
。在运行时(在生产Chrome或Canary中),第一个链接保持不变,但第二个链接将其静默修改为href
(没有目的地)。
虽然这个例子是设计的,但是我有一些页面组件想要出于各种原因检查自己的链接。这些神秘修改的href导致代码失败。例如,如果名为foo.html的页面有自己的链接,则会以静默方式删除href中的链接目标。
此href修改是否为错误或功能?如果这是故意的,那么如何修改href的规则是什么。我可以把它关掉吗?
答案 0 :(得分:1)
进口设计为可重新定位。 IOW,我可以使用<img src="foo.png">
进行导入,并将foo.png
放在与导入相同的文件夹中,项目可以使用该导入并访问图像而不会破坏路径。
Polymer通过(尝试)使模板内部的路径也是import-relative进一步采取这一步骤。这样我就可以将<img src="foo.png">
放在我的模板中并具有与上面相同的行为。
重写主文档中<polymer-element>
中的路径是一个错误。任何不会导致正确的导入相对路径的路径修改都是一个错误。听起来像你在这里遇到一些错误,建议你提交发票。
附加说明:
直到最近,任何包含绑定的网址都保持不变。我相信最新版本会改为将这些网址转换为导入相关网址,如果网址首先是明确相对的。
如果您需要命令性地计算元素来源的路径,您可以使用内置于每个聚合物元素的resolvePath
方法。 IOW,像这样:var documentRelativePathToFoo = this.resolvePath('foo.png');
。这会从foo.png
的角度计算window.document
的正确路径,这是大多数DOM操作(例如XHR)的视角。