我想知道谷歌如何设法在新窗口/标签中打开外部链接而不定义target =“_ blank”。
例如,在google plus中,所有外部链接都会在新窗口中打开。 我认为它是一些Javascript巫毒,但.js代码是混淆的,所以我不能真正研究。
编辑:哦和后续问题:为什么?
答案 0 :(得分:2)
使用框架可以轻松实现。只需让JavaScript查找标记为rel="external"
的链接,或将其显示为外部链接的其他标识符,然后动态添加target="blank"
。以下是使用Prototype的示例:
$$('a[rel="external"]').each(function(a) {
a.setAttribute('target', '_blank');
};
答案 1 :(得分:0)
在允许锚链接事件返回true之前,他们不能通过javascript添加target属性。
答案 2 :(得分:0)
这是Javascript。你可以说:
window.open('http://example.org', '_blank').focus();
但请不要。在新窗口中打开链接几乎总是错误的。说真的,很好地利用这个很少。如果用户想要在新窗口中打开链接,他们就能够自己做到这一点。
Jakob Nielsen telling people this twelve years ago。 Others have taken up the cudgels。 W3C从HTML 4删除了target
属性,因为它是一个糟糕的主意。老实说,我不明白这种用法是如何持续存在的。当一个网站对你这么做时,你不觉得它令人难以置信吗?你为什么要写一个网站给别人写这个?
这让我想到了你的后续问题。谷歌为什么决定这样做?我对此没有答案,而且我完全也完全不知道最大,最聪明的网络公司之一是如何犯这样一个基本错误的。但是,很多Google Plus界面的可用性都非常差(因为大多比Facebook穷人差);我怀疑背后有一个有趣的故事。该项目是否资源不足,因此在GWT等快速发展框架之上廉价建造?它是由一只孤独的狼建造的一个业余时间项目,对网络架构有盲点吗?这是由那些不关心技术正确的策略人员推动的吗?谜。