HTML Frame强制所有链接中的新窗口

时间:2009-08-28 21:36:22

标签: html frameset

我在页面上设置了框架,是否有办法强制子框架中的所有链接在新窗口(“空白”)中打开而不是“自我”?

我无权访问我的框架中的页面,有时链接打开新页面有时他们只是转移到一个全新的页面。我希望通过在新页面中打开所有链接来保持一致性。

5 个答案:

答案 0 :(得分:2)

你可以使用一些javascript:

var links = document.getElementsByTagName('a');
for (var i = 0, l = links.length; i < l; ++i) {
    links[i].target = '_blank';
}

你只需要在你的框架中获得对文档的引用(对不起,自从我使用框架以来已经很长时间了)。从记忆中,它就像frame.document

一样简单

我不肯定你可以修改外部页面的DOM,但值得一试。

答案 1 :(得分:1)

var links = document.getElementsByTagName('a');
for (var i = 0, l = links.length; i < l; ++i) {
    links[i].target = '_blank';
}

这对于Javascript加载的框架在新窗口中打开不起作用:(

答案 2 :(得分:0)

不要使用框架。

或者使用HTTP对象加载它们(许多服务器端语言都有很多),使用正则表达式修改链接以指向“_blank”,然后将它们放在页面上。

或者,您可能能够使用DOM:

nodeLink = document.getElementById("alink");
nodeLink.setAttribute("target", "_blank");

答案 3 :(得分:0)

当我回复以下内容时,我错过了什么?

如果您无法更改框架中的页面,则不会更改其行为。

答案 4 :(得分:0)

将其放在<head></head>标记之间:

<base target="_blank">

只需将_blank替换为您希望成为页面上所有链接基础的目标。

来源:http://www.w3schools.com/tags/att_base_target.asp