用js从新窗口打开超链接的火狐兼容问题

document.onclick=function(){o=event.srcElement;event.returnValue=false;open(o.href,''... document.onclick=function(){
o=event.srcElement;
event.returnValue = false;
open(o.href,'','');
}

这段js代码放在网页中可以让一个链接强制性从新窗口打开
我测试了IE6,IE7都可以成功运行
但是在火狐浏览器(Firefox)中就失效了

有什么办法达到都兼容,都能成功运行?

谢谢!
我当然知道 可以使用
target="_blank"
可我这里就是要用js去实现这个功能
展开
 我来答
火狐
2014-03-02 · Firefox,最快最安全的上网体验
火狐
Mozilla Firefox火狐浏览器,是一款开放安全的开源浏览器,全球拥有5亿用户。
向TA提问
展开全部
  您好!很高兴为您答疑!

  代码如下,兼容多种浏览器
<script type="text/javascript">
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href"))
anchor.target = "_blank";
}
}
window.onload = externallinks;
</script>

  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微测检测5.10
2023-07-11 广告
IEC62133与en62133的区别如下:1. 认证机构不同:IEC62133是国际的标准,它以国际通用的标准进行生产;而en62133采用的是欧盟的标准,它使用欧盟的生产需求进行生产。2. 宗旨不同:IEC62133的宗旨是促进电气、电... 点击进入详情页
本回答由微测检测5.10提供
ynsjwh
2007-12-25 · TA获得超过514个赞
知道小有建树答主
回答量:577
采纳率:0%
帮助的人:0
展开全部
首先,你说的当然是可以实现的!但是为什么一定要用js来打开新窗口呢?用户可以屏蔽弹出窗口。
你展示的代码只能在IE里运行,firefix的Event机制与IE是不同的。主要是因为IE的实现很不规范。关于几种浏览器事件的详情,你去Google上查,有很详尽的资料,在这里我就不多言了。

要打开新窗口,非常简单。我建议你如果非特殊需求,都按以下的方式:
<a href="..." target="_blank">打开新窗口</a>

如果你非要用js的话,建议你使用prototype或jquery库。否则的话你就淹没在兼顾各种浏览器细节的海洋里吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厚王
2007-12-25 · TA获得超过191个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:247万
展开全部
复制下面的代码保存htm 运行

IE6,IE7通过,FF未测,请你测试下,我认为是兼容的。

<script type="text/javascript">
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href"))
anchor.target = "_blank";
}
}
window.onload = externallinks;
</script>

<a href="http://www.baidu.com">新窗口打开</a>
<a href="http://zhidao.baidu.com">新窗口打开知道</a>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小九你10
2007-12-25 · TA获得超过3032个赞
知道小有建树答主
回答量:660
采纳率:0%
帮助的人:416万
展开全部
可以编辑这个网页的链接 请参考如下例子:

<a href=http://zhidao.baidu.com/question/42377180.html>在原窗口打开</a>
</br></br>
<a href="http://zhidao.baidu.com/question/42377180.html" target="_blank">在新窗口打开</a>

你可以把上面的内容复制到一个.html文件 点击两个链接就可以看到不同的结果了.

或者设置成超级连接就可以了。

另外一种方法是:去下载
Tab Mix Plus扩展。
Tab Mix Plus
增强标签页浏览功能的扩展。
Tab Mix Plus 是原来的 Tab Mix 的一个增强版本。同 Tab Mix 一样,它提高了 Firefox 的标签浏览能力。它包含了诸如复制标签,控制标签焦点,撤销关闭标签和其他的一些功能。但是,它提供了更多的像标签点击选项等功能。有一点和TM不一样,它兼容MAC。
http://down.zdnet.com.cn/old/windows/swinfo/0,2008005031,39185031s,00.htm

设置一下就知道firefox的强大了。
或者你下载最新版本的火狐2.0.0.11

你的问题应该可以迎韧而解吧!
http://www.chinede.cn/firefox
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿奇v
2007-12-25 · TA获得超过346个赞
知道小有建树答主
回答量:195
采纳率:100%
帮助的人:99.9万
展开全部
Richwong测试过,完全可以的。不过如果是非<a></a>的链接的话,又得做另外的处理。

如果你想用你原来的方法,可以这样修改:

document.onclick=function(e){ //存在默认传递的参量,令其为e
var o=e.srcElement||e.target;//兼容FF用e.target
o.target = "_blank";//设置目标窗口。
event.returnValue = false;//屏蔽
open(o.href,'','');
}

你原来的代码不成功是因为FF里面对象没有成功获取。
这种方法还有一个问题是你点击的不是超链接,那么就会报错,因为其他元素不一定存在target 等属性。最好做一个判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式