a标签的target

target 属性 -- 代表链接目标
  • 取值
    • _blank -- 打开一个新窗体
    • _parent -- 在父窗体中打开
    • _self -- 在本页打开,此为默认值
    • _top -- 在上层窗体中打开
    • 一个对应的框架页的名称 -- 在对应框架页中打开
  • 此标记已经被w3c抛弃
HTML中target的相关说明

 

1._blank       <a href="document.html" target="_blank">my document</a>         浏览器会另开一个新窗口显示document.html文档   
2._parent      <a href="document.html" target="_parent">my document</a>       指向父frameset文档   
3._self          <a href="document.html" target="_self">my document</a>           把文档调入当前页框  
4._top          <a href="document.html" target="_top">my document</a>            去掉所有页框并用document.html取代frameset文档    
小技巧1:使别人的页框不能引用你的网页        在文件头加:<base target="_top">    
小技巧2:在当前页打开连接或做刷新,提交到当前页在文件头加:<base target="_self">

 

链接的 target 属性怎么用 JS 来控制?

在HTML 4.0 Strict和XHTML 1.0 STRICT里不允许在<a>标签里使用target属性,这是一件令网页设计者懊恼的事.在过渡的规范里还是允许使用的.但通过一定的方法,我们可以解决这一问题.

 



HTMl4.0规范里拿掉了target属性.但它添加了另外一个属性:rel.这个属性是用来指定包含链接的文 档和所链接文档之间的关系的.规范里定义 了其属性值(如:next,previous,chapter,section),在这些属性里大多数是用来定义一个大文档里各个小部分之间的关系的.事 实上.规范里允许开发人员自由的使用非标准属性值做特定的运用.

在这里,我们采用一个自定义值external用于rel属性来标记一个链接,用来新开一个窗口.

不符合最新Web标准的链接代码:
<a href="document.html" target="_blank">external link</a>

运用rel属性:
<a href="document.html" rel="external">external link</a>

现在我们构建了一个符合Web标准的新开窗口的链接,我们还需要运用JavaScript是其实现新开窗口.脚本要实现的工作是当网页加载时,找到文档里的所有那些我们定义为rel="external"的超链接.

首先我们要判断浏览器.
if (!document.getElementsByTagName) return;

getElementsByTagName是DOM1标准里一个容易使用的方法,且它被现在的大多数浏览器所支持,因为一些旧的浏览器如Netscape 4和IE4不支持DOM1,所以我们必须通过判定这一方法是否存在来排除这些旧版本的浏览器.

下一步,我们通过getElementsByTagName方法取得文档里所有的<a>标签:
var anchors = document.getElementsByTagName("a");

anchors被赋值为包含各个<a>标签的数组,现在我们必须遍历各个<a>标签并且修改它:

for (var i=0; i < anchors.length; i++) {
var anchor = anchors ;

找到要实现新开窗口的<a>标签
以下是引用片段:
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")

接下来.建立属性值target并赋值"_target":
anchor.target = "_blank";

完整的代码:

 

以下是引用片段:
function externalLinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors;
if (anchor.getAttribute("href") &&
anchor.getAttribute("rel") == "external")
anchor.target = "_blank";
}
}
window.onload = externalLinks;

所有链接都设成_blank简单方法

在页面<head></head>之间加入<base target=_blank>(XHTML:<base target="_blank" />),就会使该页面所有链接 均为新开窗口打开。

<base> 是一个链接基准标记,用以改变页面中所有链接标记的参数默认值。

引申应用:

 

<head><base href="http://hi.baidu.com/jjpro " target="_blank" /></head>
<body><a href="jjpro">资料收集</a></body>

那么不管这个页面放置在任何域下面,该链接都会指向http://hi.baidu.com/jjpro

HTML中的`<a>`标签用于创建超链接,而`target`属性则用于指定链接在何处打开。该属性的取值决定了用户点击链接后内容的加载位置,这对于网页设计和用户体验有着重要作用。 `target`属性的常用取值包括: - `_self`:这是默认值,表示在当前窗口或标签页中加载链接内容[^2]。 - `_blank`:表示在新窗口或新标签页中打开链接内容。这种方式常用于外部链接,以防止用户离开当前网站[^2]。 - `_parent`:表示在当前框架的父框架集中加载链接内容。如果当前页面不在框架中,则此值与`_self`的效果相同[^2]。 - `_top`:表示在整个窗口中加载链接内容,这会清除所有框架并直接在浏览器窗口中显示链接页面。如果页面没有被嵌套在框架中,则此值的效果与`_self`相同[^2]。 除了上述预定义的关键字外,还可以使用自定义的名称作为`target`属性的值,这样可以在同一个窗口中维护多个命名的浏览上下文。例如,如果设置了`target="myFrame"`,那么链接将会在一个名为`myFrame`的窗口或`<iframe>`中打开。如果该名称的窗口不存在,则会创建一个新的窗口并赋予该名称。 在实际应用中,`target`属性经常用于以下场景: - 当网站包含多个框架时,可以利用`_parent`或`_top`来控制链接在框架结构中的显示位置。 - 对于广告链接或外部资源链接,通常使用`_blank`来确保用户的主浏览页面不会被替换。 - 在单页应用或多页应用中,为了保持应用的状态,可能会使用自定义的`target`名称来控制内容在特定的窗口或`<iframe>`中加载。 需要注意的是,随着现代Web开发中对用户体验的关注增加,使用`target="_blank"`时应当谨慎,因为它可能导致安全性和用户体验方面的问题。比如,新打开的窗口可能被浏览器阻止作为弹出窗口,或者用户可能对导航行为感到困惑。 此外,W3C推荐在使用`target`属性时考虑无障碍访问和SEO优化,确保即使在不支持某些`target`行为的环境中,链接仍然能够正常工作,并提供良好的用户体验。 ### 示例代码 下面是一个简单的HTML示例,展示了`<a>`标签中`target`属性的不同用法: ```html <!-- 在新标签页中打开链接 --> <a href="https://example.com" target="_blank">访问 Example.com</a> <!-- 在当前标签页中打开链接 --> <a href="https://example.com" target="_self">访问 Example.com</a> <!-- 在顶层框架中打开链接 --> <a href="https://example.com" target="_top">访问 Example.com</a> <!-- 在上一级框架中打开链接 --> <a href="https://example.com" target="_parent">访问 Example.com</a> ``` 请注意,`_parent`和`_top`只有在使用了框架(frameset)的情况下才会有明显的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值