出于各种复杂的原因,我有一个带有iFrame的Joomla页面。 iframe调用的页面是经典的asp,其下拉列表如下所示:
<select name="pulldown" onchange="nav_pulldown(this)">
<option value="?wherearewe=here">I want to go here</option>
<option value="?wherearewe=there">I want to go there</option>
</select>
JavaScript:
<script type="text/javascript">
<!-- //
function nav_pulldown(list) {
if (list.options[list.selectedIndex].value != "#"); {
top.document.location = list.options[list.selectedIndex].value;
}}
//-->
</script>
因此,用户更改下拉菜单,javascript提交表单。 asp页面抓取查询字符串并根据所选内容呈现某些内容或其他内容。当页面在iframe外部呈现时(当top.document有效时),这一切都可以正常工作。但我无法确定正确的名称或调用下拉目标并填充自己更改。我尝试了很多不同的东西。
我可以控制两个页面,Joomla和ASP。由于各种原因,查询字符串不能改变。 iframe的名称目前是formframe,如果重要的话。
答案 0 :(得分:0)
根据评论,您需要使用self.location
(或略微冗余,但相当于self.document.location
)而不是top.document.location
。
self
指的是javascript代码所在的文档。 top
将引用最顶层的父文档。因此,当您没有对某个网页进行评估时,top
会引用self
。但是当你在编写页面时,top
指的是最顶层的父文档。