关于base target="_self" 等

本文详细介绍了HTML中如何使用target属性控制链接打开的方式,包括新窗口、当前窗口等,并提供了示例代码。同时讨论了HTML标准及不同浏览器的支持情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<base target=_blank>是将基本链接的目标框架都改为新页打开,如果对HTML、CSS和JS不是很熟悉,不建议使用这种方法,改为独立控制。
  其实<a>、<form>等很多标签都支持target="black"的属性,建议在这样的标签里单独做设置,比如:
<a href="xxx.htm" target="_blank">超链接内容</a> 
<form action="xxx.htm" target="_blank">
         表达内容
       <input type="submit" value="提交按钮">
 </form>
如果不加这一句,默认均为本页刷新,即target="_self"。
 在网页中,经常碰到这种情况:点击某些链接,就会弹出新窗口,原来的页面部改变,而有些链接,就在原窗口上打开新的链接,原窗口没有了,被覆盖了。这个是为什么呢?怎么实现的呢?
        target=_blank,这个标签,就是解决这个问题的。<base target=_blank>是将基本链接的目标框架都改为新页打开,即弹出新窗口。<a>、<form>等很多标签都支持target="black"的属性,可以在这样的标签里单独做设置,比如:
<a href="xxx.htm" target="_blank">超链接内容</a>
<form action="xxx.htm" target="_blank">
         表达内容
<input type="submit" value="提交按钮">
</form>
如果不加这一句,默认均为本页刷新,即target="_self"。还有两个这样的标签,<target=_top>表示在整页窗口打开,<target=_parent>表示在父窗口打开。
<a href="http://www.try0212.blog.sohu.com/" target="_blank">单独定义,新窗口打开</a>
<a href="http://www.try0212.blog.sohu.com/" target="_self">单独定义,相同窗口打开</a>
<a href="http://www.try0212.blog.sohu.com/" target="_top">单独定义,整页窗口打开</a>
<a href="http://www.try0212.blog.sohu.com/" target="_parent">单独定义,父窗口打开</a>
另外,这只是单独设置,如果有在某个页面上有很多的链接或者form表单,逐一的添加标签会很麻烦,有没有类似批处理的呢?
这就要用到<base target=_xxx> ,这是基本的HTML语言。用<base target=_××>来设置这个网页所有链接的目标窗口。也就是说,网页中只要添加<base target=_××>这句,那么所有的超链接就无须单独设置。最好将这句写在<head>和</head>之间。例如
<base target=_blank>表示网页中所有的超链接的目标地址都在新建窗口中打开。
<base target=_self>表示网页中所有的超链接的目标地址都在原窗口上打开。
当然,这样的标签有时也会碰到麻烦。
1 不符合标准 
当我们使用W3C过渡型标准时,即DOCTYPE(xh tml1-transitional. dtd),没有问题,但是使用严格的标准时,即DOCTYPE(xhtml1-strict.dtd),就会出错,错误提示:
"there is no attribute target for this element(in this HTML version)"
原因是,外国人认为,不经过用户同意,就随便打开新窗口,是不礼貌的,不尊重用户的,可参看 http://bbs.chinahtml.com/showthread.php?t=53657
那碰到这种情况时怎么办呢?
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如下:
ExpandedBlockStart.gif ContractedBlock.gif function  externallinks()  dot.gif
InBlock.gif
if (!document.getElementsByTagName) return
InBlock.gif
var anchors = document.getElementsByTagName("a"); 
ExpandedSubBlockStart.gifContractedSubBlock.gif
for (var i=0; i<anchors.length; i++dot.gif
InBlock.gif
var anchor = anchors; 
InBlock.gif
if (anchor.getAttribute("href"&& 
InBlock.gifanchor.getAttribute(
"rel"== "external"
InBlock.gifanchor.target 
= "_blank"
ExpandedSubBlockEnd.gif}
 
ExpandedBlockEnd.gif}
 
None.gifwindow.onload 
=  externallinks; 
None.gif
你可以把它保存成一个.js文件(比如external.js),然后通过外部联接方法调用:
<script type="text/javascript" src="external.js"></script> 就是这样。
2 浏览器不支持
有时,使用了上述标签,但是,任旧不见效果,比如使用了target=_blank,却不能弹出窗口,这是因为,有些浏览器被用户设置了,不让弹出窗口,当然这样设置是为了屏蔽广告,因此,这是就无法打开新窗口,知道了原因,解决就很简单了,在浏览器中设置一下就可以了。 59985.html

hobo 2009-07-10 09:18 发表评论

转载于:https://www.cnblogs.com/zhouweiwei/archive/2009/07/10/1866532.html

def step(self, action, target=False, disturbance=False, base=None, target_set=(20, 1), disturbance_set=(200, 50, 0.3)): """ 完成一个采用周期的动作转移,并输出奖励 s(k+1) = step( s(k), a(k) ) params: action is the opt inc return: state(K+1), reward, terminated, truncated, info 采用欧拉法仿真,仿真时间为 samplet 设置一个退出条件, 仿真结束后,系统进入新的稳定状态 """ # 系统前进 samplet 秒 # 叠加上控制偏置量 # self.ubias += action[0] self.ubias = 0 self.virtual_target = action[0] for tick in np.arange(self.simT, self.sampleT+self.simT, self.simT): t = tick + self.time_now if t >= target_set[0] and target: # 加入目标值 self.y_target = target_set[1] self.virtual_target = self.y_target*(han_trans(t - target_set[0], 80)) e_k = self.virtual_target - self.y_k x1_k1 = -3.6 * e_k * self.simT + self.x1_k # for x1(k+1) x2_k1 = (850 * e_k - self.x2_k) * self.simT + self.x2_k # for x2(k+1) x3_k1 = (-1/15.4 * self.x3_k + 1/15.4 * self.u_k * (-0.0139)) * self.simT + self.x3_k # for x3(k+1) x4_k1 = (-1/15.4 * self.x4_k + 1/15.4 * self.x3_k) * self.simT + self.x4_k # for x4(k+1) # 计算迟延环节输出 y_k1 = self.x4_buffer[-1] # add disturbance 0.3 in the time range(450,500) if (t >= disturbance_set[0]) and (t <= (disturbance_set[0] + disturbance_set[1])) and False: y_k1 += disturbance_set[2] # 更新 控制量 e_k1 = self.virtual_target - y_k1 um_k1 = x1_k1 + x2_k1 - 960 * e_k1 # PID k 时刻输出的控制指令 960 u_k1 = rate_limiter(um_k1 + self.ubias, self.u_k, T=self.simT, up=20, down=-20) # 状态转移 self.x1_k, self.x2_k, self.x3_k, self.x4_k = x1_k1, x2_k1, x3_k1, x4_k1 self.u_k = u_k1 self.y_k = y_k1 self.e_k = e_k1 self.x4_buffer[1:] = self.x4_buffer[0:-1] self.x4_buffer[0] = x4_k1 # 保存仿真数据 self.y_save[self.index] = y_k1 # 从 0.1s 开始 self.u_save[self.index] = u_k1 self.um_save[self.index] = um_k1 self.ubias_save[self.index] = self.ubias # 一个辅助控制器的采用周期才改变一次 self.y_target_save[self.index] = self.y_target # y_target 可能在过程中改变 self.virtual_target_save[self.index] = self.virtual_target # y_target 可能在过程中改变 self.index += 1 解释代码(详细)
最新发布
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值