如何打开不同div之间的超链接

时间:2011-07-21 19:29:19

标签: javascript html

如果这是一个新手问题,请原谅我 - 但遗憾的是我就是这样。

我有一个包含两个div的index.html(id的#A和#B)。在主页面中,我可以使用以下命令单击要在div #A中打开的链接:

<a href=page_to_open_in_A.html onClick="load_A(this); return false;">link in index</a>

function load_A(page)
    {
    parsedhtml='<object type=text/html data="'+page.href+'"><\/object>';
    document.getElementById("A").innerHTML=parsedhtml;
    }

到目前为止一切顺利。但现在我想点击div #A里面的链接在div #B中打开。我尝试了以下方法:

<a href=page_to_open_in_B.html onClick="load_B(this); return false;">link in A</a>

function load_B(page)
    {
    parsedhtml='<object type=text/html data="'+page.href+'"><\/object>';
    document.getElementById("B").innerHTML=parsedhtml;
    }

所有这一切都打开了div #A内的第二个链接。

我怀疑div id的范围有问题,但我无法弄清楚如何解决它。

提前感谢您对我的同情!

编辑:使用上述功能的最小html示例

这是index.html:

<html>
<head>
<script src="funs.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>

    <a href=one.html onClick="load_A(this); return false;">link_to_A</a>

    <div id=A>one</div>
    <div id=B>two</div>

</body>
</html>

其中funs.js包含上面的函数load_A()和load_B()。这些div在style.css中描述:

#A { position: absolute; top: 10%; left: 10%; width: 20%; }
#B { position: absolute; top: 10%; right: 10%; width: 20%; }

和文件one.html:

<html>
<head>
<script src="funs.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

Contents of one.

<a href=two.html onClick="load_B(this); return false;">link_to_B</a>

</body>
</html>

和two.html:

<html>
<head>
<script src="funs.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

Contents of two

</body>
</html>

再次感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

如果你没有收到javascript错误,那么这可能意味着你的脚本正在抓取其他一些元素。检查整个html页面,确保页面上没有任何其他元素(不仅仅是div),ID为“B”。

另外,请确保您没有任何格式错误的HTML。 DOM中不存在缺少或不匹配的结束标记和div #B。

如果您可以发布与div相关的完整html,也会有所帮助。

答案 1 :(得分:0)

经过多次试错和一些明智的谷歌搜索后,我意识到我的load_B()函数应该在当前div的父元素中查找元素id:

function load_B(page)
    {
    parsedhtml='<object type=text/html data="'+page.href+'"><\/object>';
    parent.document.getElementById("B").innerHTML=parsedhtml;
    }