本文参考了以下文章:
Kevin Yank的《New-Window links in a Standards-Compliant World》
《Standards-based Replacement for target="_blank" in External links》
我们要在新窗口中打开链接通常的做法是在链接后面加target="_blank",我们采用过渡型的DOCTYPE(xh tml1-transitional. dtd)时没有问题,但是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个方法将通不过W3C的校验,会出现如下错误提示:
"there is no attribute target for this element(in this HTML version)"
原来在HTML4.01/XHTML1.0/XHTML1.1严格DOCTYPE下,target="_blank"、target="_self"等等语法都是无效的,我们只能通过JavaScript来变通实现。
有朋友问为什么不允许使用target="_blank"?这个属性很方便啊。呵呵,不知道W3C的专家们是怎么想的,据我所知,主要是“易用性、友好性”的问题,因为老外觉得不经过用户同意,没有明确提示就打开一个新窗口是不礼貌的。先不管这个取消是否合理,我们来看看解决办法。
rel属性
HTML4.0增加了一个新属性:rel,这个属性用来说明链接和包含此链接页面的关系,以及链接打开的目标。rel有许多的属性值,比如next、previous,、chapter、section等等。我们要使用的就是rel="externa l"属性。原来这样写的代码:
<a href="document.html" target="_blank"> 打开一个新窗口</a>
现在要写成这样:
<a href="document.html" rel="external">打开一个新窗口</a>
这是符合strict标准的方法。当然还必须配合一个javascript才有效。
javascript
完整的代码JS如下:
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;
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
<script type="text/javascript" src="external.js"></script>
就是这样。
最后补充一句,我网站采用的target="new"在过渡型DOCTYPE下是允许的,但也不符合strict标准。下次改版时我将采用strict模式,将所有target="new"改成rel="external"。
分享到:
相关推荐
我们要在新窗口中打开链接通常的做法是在链接后面加target="_blank",我们采用过渡型的DOCTYPE(xh tml1-transitional. dtd)时没有问题,但是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个方法将通不过W3C的...
在新窗口/选项卡中简单、自动且符合标准地打开外部链接。 为什么要自动定位? 当您编写符合标准的代码,但仍希望在新窗口中打开站外链接时,会遇到一些问题。 XHTML 1.0 Strict 不赞成使用“target”属性。 HTML5 ...
2. 如果不存在同名窗口,则会创建一个新窗口,并将其名称设为指定的名称。 3. 如果省略`name`参数,或者使用`_blank`,则每次都创建一个新的窗口。 4. 如果浏览器的隐私模式或者其他阻止弹窗的设置开启,window.open...
3. 链接目标属性(target="_blank"):在XHTML 1.0中,不应使用`target="_blank"`来强制在新窗口中打开链接,而是应该使用`rel="external"`属性,并配合JavaScript实现,如下所示: ```html 打开一个新窗口 ``` ...
- target="_self":在当前页面窗口打开链接,即不会新开页面。 - target="_blank":在新的页面或标签页中打开链接。 首先,百度百科的做法比较灵活。如果链接的header(可能是指页面的头部内容,如导航栏)与当前...
另外,对于现代浏览器,更推荐使用`Fullscreen API`,它提供了更安全、可控且符合标准的全屏方法。`Fullscreen API`允许元素(如`<video>`或`<div>`)进入全屏模式,使用`element.requestFullScreen()`方法,退出...
一旦找到匹配的URL,我们就用超链接的形式替换它,其中`<a>`标签用于创建超链接,`target='_blank'`属性表示链接将在新窗口中打开。 现在,你可以像这样使用这个方法: ```java public static void main(String[] ...
选项A `_blank` 表示在新窗口或新标签页中打开,符合题目中"在新窗口打开网页"的要求。 2. **页面属性与TracingImage**: - TracingImage是Dreamweaver中的一个辅助功能,用于网页排版时图像的精确对位。它在设计...
此外,网页的链接可以使用 `target` 属性来指定在何处打开,如 `_blank` 打开新窗口,`_self` 在当前窗口打开,`_top` 填充整个浏览器窗口,而 `_parent` 在父框架中打开。链接的 `href` 属性可以指向 URL 或页面...
例如,`<base href="http://titan/listings/" target="_blank">` 设置了基准URL,并规定所有链接将在新窗口中打开。 最后,元素用于在中内联定义CSS样式,虽然为了性能优化,通常建议将样式表放在外部文件中,但...
13. **新窗口打开链接**:`<a>`标签的`target="_blank"`属性让链接在新窗口中打开,如`<a href="newPage.htm" target="_blank">打开</a>`。 14. **插入图片**:`<img>`标签插入图片,`src`属性指定图片路径,如`...
9. **新窗口打开链接**:使用`target="_blank"`属性可以使得链接在新窗口中打开。 10. **CSS布局**:CSS常利用`div`元素来构建网页布局,通过设置样式实现定位和尺寸控制。 11. **边框语法**:在CSS中,`border-...
在网页设计中,创建符合Web标准的表单是至关重要的,因为它们不仅影响用户体验,还直接关乎网站的可用性和易用性。以下是一些使用CSS和HTML技巧来优化网页表单设计的关键点: 1. **表单文本输入的移动选择**: 当...
- **知识点**: 使用 target 属性可以控制链接打开的方式,target="_blank" 表示在新窗口或新标签页中打开链接。 - **选项分析**: - A. herf=”_blank”:herf 错误,应该是 href。 - B. name=”_blank”:name ...
- **解析**:`target="_blank"` 是HTML中用于指定链接目标的一个属性值,表示在新窗口或新的标签页中打开链接。 ### 其他知识点扩展 除了上述选择题解析外,还涉及到一些其他的重要知识点: - **CSS样式表**:...
现在,我们构建了一个符合 Web 标准的新开窗口的链接,我们还需要运用 JavaScript 来实现新开窗口。脚本要实现的工作是当网页加载时,找到文档里的所有那些我们定义为 `rel="external"` 的超链接。 首先,我们要...
这个函数接受一个URL字符串和一个目标参数,目标参数可以设置为`_blank`(在新窗口打开)、`_self`(在当前窗口或帧打开)、`_parent`(在父级框架打开)或`_top`(在整个浏览器窗口打开)。 4. **导出SWF文件**:...
`target`属性可指定链接打开的方式,如`_blank`表示在新窗口中打开。 ```html 目标网址" target="_blank">链接文字 ``` ### 6. 表格:`<table>` 标签 `<table>`标签用于创建表格,通过`<tr>`(行)、`<td>`...
- `<a target="_blank">`:在新窗口中打开链接。 - `window.open()`:JavaScript函数,用于打开新窗口。 4. 样式和脚本 - `<style>`:定义CSS样式。 - `<script>`:嵌入或引用JavaScript代码。 5. 窗口和框架 ...