正在读取file.js时将目标添加到链接

时间:2011-01-14 13:47:09

标签: php javascript

如果我有一个最近的comments.js文件(来自另一台服务器),无论如何,我可以添加一个TARGET =“_ top”到file.js中的链接,因为正在读取和添加file.js到页面?

原因:它位于iFrame中,除非我可以添加目标顶部...当您点击链接时,它将在iFrame中打开新页面。我当然需要它去网站的顶部。

我无法更改代码或在原始file.js上添加链接目标来自其他服务器。

必须在下载时完成。

该网站当然是PHP

由于

3 个答案:

答案 0 :(得分:2)

在iframe之外:

var linkArray = window.frames['frameName'].getElementsByTagName('a');
for (var i=0; i<linkArray.length; i++) {
  linkArray[i].target = '_top';
}

或在iframe内:

var linkArray = document.getElementsByTagName('a');
for (var i=0; i<linkArray.length; i++) {
  linkArray[i].target = '_top';
}

您需要将一个事件包装到一个事件中,该事件在外部文件的所有链接都已加载后触发。

答案 1 :(得分:1)

window.frames[x].document.getElementsByTagName('a').each(function(item){
    item.setAttribute('target','_top');
})

答案 2 :(得分:1)

使用javascript,您可以在加载完成后操纵iframe的DOM并添加目标属性:

<html>
    <head>
        <script type="text/javascript">
            function add_targets(iframe) {
                var links = iframe.contentWindow.document.getElementsByTagName('a');
                for(var i=0; i<links.length; i++) {
                    links[i].target = "_TOP";
                }
            }
        </script>
    </head>
    <body>
        <iframe src="links.html" onload="add_targets(this)"></iframe>
    </body>
</html>