符合 XHTML 1.0 strict 规范的 新窗口打开


在 HTML4.01 可以使用 target=”_blank”, 但 XHTML1.0是不被允许的.

<a href="document.html" target="_blank">Open in New Window</a>

在 XHTML1.0 需要用 rel=”external” 属性.

<a href="document.html" rel="external">Open in New Window</a>

当然这是符合 XHTML 1.0 strict 标准规范, 而且你不要忘记在文件头声明文档类型:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

如果文档类型忘记了或者有的浏览器不支持(像老版本的IE), 那么就无法达到预期的目的, 不过可以通过以下 Javascript 使新标签一样可以按照老方式工作:

1
2
3
4
5
6
7
8
9
10
11
// helloacm.com
function externallinks() { 
    if (!document.getElementsByTagName) return; 
    var anchors = document.getElementsByTagName("a"); 
    for (var i = 0; i < anchors.length; i++) { 
        var anchor = anchors[i]; 
        if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
            anchor.target = "_blank"; 
    } 
} 
window.onload = externallinks; 
// helloacm.com
function externallinks() { 
    if (!document.getElementsByTagName) return; 
    var anchors = document.getElementsByTagName("a"); 
    for (var i = 0; i < anchors.length; i++) { 
        var anchor = anchors[i]; 
        if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") 
            anchor.target = "_blank"; 
    } 
} 
window.onload = externallinks; 

最好保存成一个文件, external.js, 然后通过以下方式调用 (最好放在 head 之间加载):

<script async type="text/javascript" src="external.js"></script> 

async 指明了调用方式为异步, 这样就不会导致页面加载过慢.

英文同步: https://helloacm.com/html-hyper-link-in-new-windows-by-xhtml-1-0-standard/

GD Star Rating
loading...
本文一共 158 个汉字, 你数一下对不对.
符合 XHTML 1.0 strict 规范的 新窗口打开. (AMP 移动加速版本)
上一篇: 英国学生签证和工作时间
下一篇: 儿子在英国谢菲尔得第一天上幼儿园

扫描二维码,分享本文到微信朋友圈
2be14cdaca65ade765a6f7e9ef9c6e10 符合 XHTML 1.0 strict 规范的 新窗口打开 互联网 技术 折腾 程序设计 网站信息与统计

3 条评论

  1. 兔二爷 | 理性的感性生活

评论