【问题标题】:HTML mini browser back button disablingHTML迷你浏览器后退按钮禁用
【发布时间】:2013-06-18 12:03:58
【问题描述】:

我有以下网页:

<!Doctype html>
<html>
<head>
<script>
function display(value){
document.getElementById('displayer').src=value;
return false;
}
</script>
</head>
<body>
<form name="x" onsubmit="return display(this.y.value)">
<input name="y" /><input type="submit" value="display"/>
</form>
<iframe id="displayer">ERROR</iframe>
<button onclick="document.getElementById('displayer').contentWindow.history.back()">Click me to go back in the history of iframe!</button>
</body>
</html>

并且后退按钮工作正常,但是当有人到达他们开始的页面(在 iframe 中)并单击后退按钮时,它会将他们带到他们在整个浏览器窗口中访问的上一个页面。当有人到达他们开始的页面时,我怎样才能以某种方式禁用后退按钮?

我可以通过使用文本框中的值来跟踪他们开始的页面,但是如何知道当前在 iframe 中访问的是哪个页面?

如果我可以知道 iframe 中当前正在访问哪个页面,那么我可以轻松地放置一个条件语句来禁用按钮...

我试过了:

document.getElementById("displayer").contentWindow.location.href

但它给了我未定义!

我正在使用谷歌浏览器最新版本的 ubuntu 12.10。

请帮忙...

【问题讨论】:

    标签: html iframe browser-history


    【解决方案1】:

    编辑

    两个问题的回答:

    当有人到达他们开始的页面时,我怎样才能以某种方式禁用后退按钮?

    你不能。

    如何知道当前在 iframe 中访问的是哪个页面?

    在这种情况下,没有办法。

    出于安全原因,就像您无法使用 AJAX 从站点外部的来源获取内容一样,如果在站点外部,您也无法获取 iframe 网址。

    【讨论】:

    • 是的,我确实在考虑 div 和 ajax 加载的内容,但是如果他们点击链接会发生什么,整个页面将更改为下一页,我只希望 div 更改其代码,如何关于那个?
    • 您使用AJAX 获取内容,然后将内容放入div。一个简单的例子可以看here (jQuery)
    • 是的,我知道,但是您不认为当有人单击 div 中的链接而不是仅 div 时,整个页面会重新加载吗?或者我应该为每个获取 href 值并将其传递给显示函数的链接放置一个 onclick 监听器,然后使用 ajax 并获取新页面?
    • 抱歉,我删除了我的评论,因为它可能让您感到困惑。想想我之前评论中的例子,将那里使用的&lt;p class="classloader"&gt; 切换为&lt;a href="javascript:void(0);" class="classname"&gt;
    • 但是如果我将旧的 href 设置为 javascript:void 我的 onclick 监听器如何知道 href 是什么?那么有没有办法遍历div中的所有&lt;a&gt;s并将href更改为javascript:display(oldhref)
    猜你喜欢
    • 2011-08-06
    • 2010-10-31
    • 2014-04-17
    • 2011-04-06
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多