【问题标题】:Navigation only in iframe仅在 iframe 中导航
【发布时间】:2010-03-01 16:20:58
【问题描述】:

我在站点中有 iframe,它充当内部浏览器。我知道框架通常是个坏主意,但我找不到替代方案。问题是当用户单击 iframe 内的链接时如何防止浏览器导航 - 只有 iframe 必须被重定向,而不是所有浏览器。 iframe 内的站点有限,非常简单 - 主要是静态 HTML,如果可能的话,也许我可以使用 javascript 将 target='iframe_name' 添加到 iframe 的 HTML 内的每个链接.. ?

【问题讨论】:

    标签: javascript html iframe


    【解决方案1】:

    HTML<a>标签的正常操作已经是只替换当前帧了。

    这是一个简单的示例页面:http://gutfullofbeer.net/frames/able.html

    当您单击框中的链接时,框架会重新加载。这些只是简单的<a> 标签。

    【讨论】:

    • 是的,我注意到了,谢谢,但似乎明确给出了目标,所以我可能需要以某种方式覆盖它,但是正如我在上面的评论中所写的那样,它是被禁止的,因为 iframe 指向其他域。
    【解决方案2】:

    是的,您可以使用以下简单代码更改所有链接:

    iFrameText = iFrameText.replace(/(<a\s)/ig, "$1target='iframe_name' ")
    

    但是,如果您为某些链接设置了“目标”,这可能会产生问题。我认为后者会优先考虑。

    【讨论】:

    • 这不是很稳定,也没有必要。
    • 谢谢,虽然我错误地假设我可以访问 iframe 的内部文本 - 这是禁止的,因为内容是从其他域获取的。我在 Javascript 中收到权限被拒绝错误。是否还有其他解决方法需要考虑?
    • 您可以将代码放在加载的页面中(如果可能的话)并检查您是否在框架内运行 - 然后您可以更改target 属性。至于 JavaScript 访问被拒绝,我相信这样做是为了防止隐藏的父文档使用单个 &lt;iframe&gt; 占据整个屏幕。这样您就可以窥探用户访问的页面。
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2016-04-17
    相关资源
    最近更新 更多