使用YUI和Pure-CSS,我创建了一个水平导航菜单。一个链接(" Messenger")必须打开一个新窗口或标签(target =" _blank")但是Javascript忽略了它并在当前窗口中打开链接。
HTML / CSS是:
<div id="demo-horizontal-menu">
<ul id="std-menu-items">
<li class="pure-menu-selected"><a href="#">Flickr</a></li>
<li><a href="http://cnn.com" target="_blank">Messenger</a></li>
<li><a href="#">Sports</a></li>
<li><a href="#">Finance</a></li>
<li>
<a href="#">Other</a>
<ul>
<li class="pure-menu-heading">More from Yahoo!</li>
<li class="pure-menu-separator"></li>
<li><a href="#">Autos</a></li>
<li><a href="#">Flickr</a></li>
<li><a href="#">Answers</a></li>
<li>
<a href="#">Even More</a>
<ul>
<li><a href="#">Horoscopes</a></li>
<li><a href="#">Games</a></li>
<li><a href="#">Jobs</a></li>
<li><a href="#">OMG</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Javascript是:
YUI({
classNamePrefix: 'pure'
}).use('gallery-sm-menu', function (Y) {
var horizontalMenu = new Y.Menu({
container : '#demo-horizontal-menu',
sourceNode : '#std-menu-items',
orientation : 'horizontal',
hideOnOutsideClick: false,
hideOnClick : false
});
horizontalMenu.render();
horizontalMenu.show();
});
这是小提琴:
http://jsfiddle.net/k8qMY/607/
这些库似乎有几个类似的问题,但大多数处理使用onClick来跟踪新窗口或强制新窗口而不是新选项卡。
答案 0 :(得分:1)
您的小提琴(http://jsfiddle.net/p3A9P/)正在为我打开新标签中的信使链接。
target="_blank" //Appears to be working properly for me.
可能是环境问题,而不是你的代码?你使用的是什么浏览器?它是最新的吗?
我使用的是Google Chrome版本29.0.1547.66 m
答案 1 :(得分:1)
如果您看到正在使用的the source code of the sm-menu YUI plugin,则会在第196行注意到,他们重新构建<a>
元素,仅使用href属性,从而离开目标。这就是为什么“Messenger”菜单选项无法在新的浏览器窗口/选项卡上打开的原因。
也许你可以选择菜单项并在渲染后手动添加目标属性。