如果这是一个新手问题,请原谅我 - 但遗憾的是我就是这样。
我有一个包含两个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>
再次感谢您的帮助!
答案 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;
}