【问题标题】:HTML anchor tag in an iframeiframe 中的 HTML 锚标记
【发布时间】:2013-09-07 03:13:12
【问题描述】:

我在 chrome 中遇到了这个奇怪的问题(仅在 chrome 中)。

我有一个带有标准布局的页面(页眉、内容、页脚,左右边距)。内容部分有一个 iframe,其中包含许多 <a href="#" onclick="doSomething()">Text</a> 形式的锚标记

当单击此锚标记中的任何一个时,标题会隐藏。任何形式相同但在 iframe 之外的锚标记都可以正常工作。

我已验证 DOM 的标题元素完好无损。显示不是“无”(将页面放大到 150%,标题开始轻微出现)。

当我强制浏览器重绘页面时,比如更改内容部分的任何 css 属性(高度),标题就会出现。

当我将 href 从“#”更改为“#nonexistent”时,链接可以正常工作。

一个快速的解决方法是将href更改为javascript:void(null);(这也可以)或类似的东西。但不知何故,我无法添加任何小脚本。 这看起来很奇怪。有人可以帮助/指出正确的方向吗?

【问题讨论】:

  • 这是iframe里面的header,还是父页面的header?此外,现在页面的编写方式首先是doSomething,然后是#。这是设计使然吗?
  • 你必须使用锚点吗?你能用 <span onclick="doSomething()">Text</span> 这样简单的东西代替 <a href="#" onclick="doSomething()">Text</a> 吗?如果需要,您可以将跨度设置为看起来像锚
  • 问题是,我对这些链接的构建方式无能为力。所以, span 可能有效,但我不能。正如我之前所说,即使 href=#soemthing (不存在的东西)也可以正常工作。我只是想了解为什么会发生这种情况

标签: javascript html css google-chrome browser


【解决方案1】:

尝试将目标属性更改/添加到 iframe 中的锚标记。我不确定标题是否在 iframe 或父页面中消失,但我猜你想要 target="_parent"。

此外,javascript:void(null) 应该是 javascript:void。 void 是一种类型,而不是函数。调用 (null) 是不必要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2022-08-12
    • 2018-02-18
    • 2016-12-28
    • 2011-03-11
    • 2015-02-24
    相关资源
    最近更新 更多