Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “创建”的缺点是什么;a「;在匹配href属性时添加标签?_Javascript_Html_W3c - Fatal编程技术网

Javascript “创建”的缺点是什么;a「;在匹配href属性时添加标签?

Javascript “创建”的缺点是什么;a「;在匹配href属性时添加标签?,javascript,html,w3c,Javascript,Html,W3c,我想到的是一个基于a标记内部内容自动填充href属性的实现。我只能通过javascript来表达这一点 例如: var links = document.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { var elm = links[i]; var content = elm.innerHTML if (content.indexof("http") !=-1 || conte

我想到的是一个基于a标记内部内容自动填充href属性的实现。我只能通过javascript来表达这一点

例如:

var links = document.getElementsByTagName("a");

for (var i = 0; i < links.length; i++) {
    var elm = links[i];
    var content = elm.innerHTML
    if (content.indexof("http") !=-1 || content.indexof("www") !=-1) {
        elm.href = content;
    } else {
        elm.href = "#";
    }
}
var links=document.getElementsByTagName(“a”);
对于(变量i=0;i
当然,这是一个非常基本的javascript实现,考虑得不太好,会导致性能和SEO问题。我所考虑的是更多地向W3C建议,这样他们就可以计划一个本机浏览器实现,从而在编码时节省我们的时间

我们将能够:

  • 在不指定href的情况下对标记进行编码

    <a>http://google.co.uk/</a>
    
    <a href="http://google.co.uk/">Click here</a>
    
    
    
  • 为原型制作空白链接

    <a>Click here</a>
    
    
    
  • 通过指定href来覆盖此行为

    <a>http://google.co.uk/</a>
    
    <a href="http://google.co.uk/">Click here</a>
    
    
    
    结果:没有变化


在创建大量T&Cs页面的同时,将同一URL复制并粘贴数百次到href属性这一繁琐工作中,我有这些想法。我肯定我忽略了一些东西。

该提案将打破现有的规范,因此不太可能有太多机会被认真考虑。由于各种原因(这些元素是有效的),有数百万(可能是数十亿)的网页具有
a
元素,而没有
href
属性。该提案将使所有这些文件在功能上相互联系,从而改变文件的含义


还有其他缺点,但是这一个可能就足够了。

一个明显的问题是,如果你想要一个
a
标记而不带
href
?@NatZimmermann:如果标记内容看起来不应该在
href
中,那么它会在
href
中放一个
,这与根本没有
href
不同全部的示例代码中有一个简单的if/else,它总是将
href
设置为某个值……W3C在HTML标准中花费了数千小时的时间。他们不会更改
元素的定义以节省您的键入时间。请使用带有真实url的普通链接,并停止使用
。我厌倦了那些不能在新标签页中打开很多链接的网站(或者在新标签页中发现一个丑陋的
javascript:void(0)
),仅仅因为开发人员认为这些标准只是为了惹恼他。@VinnyFonseca:举了一些例子,说明您可能需要一个没有href的锚定标记。历史上(尽管可能还有大量的web)在HTML4中,您会使用
作为
的目标。我同意这会破坏现有代码,但元素和方法一直被弃用。仅仅因为我们有一个没有href属性的标签,并不意味着这是正确的做法。它被认为是一个有效的元素,但我看到的使用空链接的唯一用例是当它们是按钮时,在这种情况下,应该使用元素或带有“cursor:pointer”的div,以及悬停和活动状态。如果有助于构建更好的文档结构,我认为这个缺点是不够的。@VinnyFonseca试图为div:visted或button:link制定CSS规则是毫无意义的!为此,我们有锚。。。a:已访问、a:链接等…@AdrianSalazar如果不是链接,请使用带有所需css的按钮。“A”标记用于链接。按钮,按钮:悬停,按钮:活动。如HTML5规范中所述,没有
href
a
元素已经用于链接所在位置的语义目的(例如导航工具栏上当前页面链接的位置):“如果a元素没有href属性,则该元素表示一个占位符,如果链接与此元素相关,则该占位符可能放置在该位置,仅包含元素的内容。”