0

由于各种复杂的原因,我有一个带有 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 有效时),这一切都可以正常工作。但是我无法确定正确的名称或调用来拥有下拉目标并在 onchange 上填充自身。我尝试了很多不同的东西。

我可以控制两个页面,Joomla 和 ASP。由于各种原因,查询字符串无法更改。如果重要的话,iframe 的名称当前是 formframe。

4

1 回答 1

0

根据评论,您需要使用self.location(或稍微多余但等效的self.document.location)而不是top.document.location.

self指 javascript 代码所在的文档。 top将引用最顶层的父文档。因此,当您不构建页面时,请top参阅self. 但是,当您对页面进行 iframe 时,top指的是最顶层的父文档。

于 2013-05-20T20:41:58.617 回答