当前位置: 首页 > 面试题库 >

AngularJS如何摆脱使用自定义HTML5元素标签和属性的困扰?

笪煌
2023-03-14
问题内容

大多数浏览器似乎都允许您创建所需的任何元素标签,并将所需的任何属性名称添加到元素。例如:

<!DOCTYPE html>
<html>
<body>
<div my-attribute="has no data- prefix, but seems to behave like an attribute should">
    <br/>
    <hello-world style="display:block;background:#eee">Hello Everybody</hello-world>
    <goodby-world style="background:#faa">Default display is inline</goodbye-world>
</div>
</body>
</html>

上面显示正常。看起来未定义的元素的行为与跨度非常相似。看起来AngularJS也充分利用了自定义标签和属性-这在很大程度上取决于它。

但是,据我了解,做这种事情是不可以的,除非自定义html5属性带有“ data-”前缀。

因此,我的问题是:不再需要组成自己的自定义元素标签和/或属性名称了吗?或者换种说法,AngularJS是否依赖非标准的怪癖,这些怪癖实际上不是HTML5规范的一部分,但是无论如何都能正常工作?Google的某个人发现了html5规范中一个久违的秘密章节吗?还是我完全误会了什么?


问题答案:

它不会验证,但是会渲染。

HTML5被设计为非常宽容的(与XHTML相反)。这部分是为了使“较旧的”
HTML5浏览器可以允许该版本尚不支持的新元素(以及格式错误的HTML)而不会破坏页面。

当然可以“利用”它来引入自定义标签。

话虽如此-您也可以使用HTML4做到这一点。

如评论中所述:您还可以在普通标签中为所有属性添加前缀,data-并且它将进行验证。



 类似资料:
  • 问题内容: 目的是使产品名称出现在缩略图的工具提示中。浏览器不会根据“ ng-title”或“ ng-attr-title”创建工具提示。 我们正在使用AngularJS 1.0.7版。您可以在任何属性前面加上“ ng-”或“ ng- attr”,Angular会进行相应的绑定。但是,它似乎没有“绑定”到HTML“ A”标签的标题上。 例如 1。 码: 预期结果: 实际结果:工具提示中出现不必要的

  • 我正在尝试使用Javascript选择此复选框 下面的代码可以工作,但并不理想 我试过这些 但它们并不起作用。有什么想法能让这件事成功吗? 数据值未硬编码的更新代码

  • 问题内容: 在两种情况下,我想使用自定义html属性刮取html标签。这是html的示例。如何使用自定义属性“ limit”刮擦所有元素。 第二种情况相似,但所有html标记都相同 我的问题不同于如何仅查找具有特定属性的标签- BeautifulSoup,因为后者针对具有特定标签的属性值,而我的问题仅查找与标签或值无关的属性 问题答案: 参考: http://www.crummy.com/soft

  • 问题内容: 在某些元素具有自定义CSS属性的应用程序中,是否可以通过JavaScript检索此类值? 例如 我可以通过以下两种方法访问color属性: 但是这些不适用于自定义属性。完全支持吗? 问题答案: 浏览器无法理解的CSS值将被丢弃,这说明了为什么无法通过来获取CSS值。 过去,您不得不依靠存储具有数据属性的数据并自己通过JavaScript处理继承。 但是,自此以来,“自定义属性”(也称为

  • 问题内容: 我正在尝试创建类似于以下内容的自定义标签: 其中type是绑定到组件的属性。以此方式将文本设置在标签中,如下所示: …(其他组件)… 如文档所述,我有一个设置默认类型的控制器: 因此,如果我使用没有属性类型的标记仍会设置。 我正在尝试使用指令进行绑定: 请注意,我在组件模板(ng-app =“ TestPage”)中确实具有适当的ng-app设置。 我的问题是绑定到类型似乎没有实际绑定

  • 问题内容: 我一直无法找到关于自定义标记在HTML5中是否有效的明确答案,如下所示: 而且自定义标签似乎无法通过W3C验证器进行验证。 问题答案: “ 自定义元素”规范在Chrome和Opera中可用,并且在其他浏览器中也可用。它提供了一种以正式方式注册自定义元素的方法。 自定义元素是作者可以定义的新型DOM元素。与无状态且短暂的装饰器不同,自定义元素可以封装状态并提供脚本接口。 自定义元素以及模