Firefox不会“;正确地“;打开具有目标=“0”的链接_空白“;JavaScript在页面加载时添加的属性
Will Firefox not "correctly" open links with a target="_blank" attribute added on page load by JavaScript?
我使用以下代码(使用Undercore.js库)在页面加载时将属性target="_blank"
和rel="external"
添加到所有非本地链接。我的代码如下所示:
(function($){
$(document).ready(function(){
// Create a matching regex pattern based on current host name
var regexPattern = new RegExp(location.origin);
// Gather all non-local links
nonLocalLinks = _(jQuery('a')).reject(function(link) {
return link.href.match(regexPattern);
});
// Add attributes to all non-local links
_(nonLocalLinks).each(function(item) {
item.target = '_blank';
item.rel = 'external';
});
})
})(jQuery)
此代码在所有测试过的浏览器(Chrome 17、IE7、IE8、IE9、Safari)中都能正常工作,但在Firefox 10中不起作用。在锚点标记上设置了target="_blank"
属性的链接,作为服务器函数预期的HTML输出的一部分。这对Firefox中的页面加载不起作用吗?或者我还缺少其他东西吗?
此外,我感谢所有的意见,但请不要认为这是糟糕的用户体验,等等。我同意,但我别无选择——这是为客户准备的,这是他们想要的;"否"不是一个选项。
编辑:这个"不起作用"意味着链接在同一个选项卡中打开。firebug控制台中没有错误-链接的行为就像没有设置target="_blank"
一样。
Firefox在window.location
上没有origin
属性。这意味着你的regexPattern
最终变成了//
,而nonLocalLinks
是空的。
演示(观看控制台):http://jsfiddle.net/ambiguous/tS4WB/
你必须用这样的东西来解释一个丢失的location.origin
:
var origin = location.origin;
if(!origin)
origin = location.protocol + '//' + location.host;
演示:http://jsfiddle.net/ambiguous/envWe/
您可能还想在正则表达式中添加一个^
锚,或者只检查indexOf
是否为零。
如果您查看window.location
上的MDN文档,您会发现支持以下属性:
- 散列
- 主机
- 主机名
- href
- 路径名
- 端口
- 协议
- 搜索
没有来源。
相关文章:
- Javascript中的空白是什么
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- javascript 显示空白灰色层
- Javascript Regex选择每个非字母数字字符和空白
- 从java调用javascript后显示空白页面
- Target=带有OnClick JavaScript的空白链接
- 为什么我的javascript地理编码函数返回空白结果
- Javascript:Google Maps API:如果地图加载在隐藏容器中,则为空白地图
- 编辑图像字段javascript验证空白图像不插入
- target=“_空白“;使用自定义javascript生成的html页面
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- 正则表达式匹配空白或空格 JavaScript
- 为什么页面在javascript:window.open之后出现空白并带有“[Object]”
- Javascript bookmarklet导致页面变为空白
- Facebook Javascript SDK提要对话框显示空白窗口
- javascript正则表达式中奇怪的空白
- 如何删除javascript数组中的空白元素
- 在空白后截断的Javascript变量
- HTML/JavaScript未在空白chrome页面上运行
- 显示javascript空白页