【问题标题】:Back button to control iframe控制 iframe 的后退按钮
【发布时间】:2016-01-21 17:09:49
【问题描述】:

首先,Javascript 不是很好。因此,如果您有答案,请使用完整的脚本。

我正在尝试构建一个充当浏览器的个人网页。 (更大系统的一部分)所以我需要一个后退和前进按钮。发现很多(较旧的)文章,都对我不起作用,而那些起作用的文章也不好用。

尝试了很多东西,但我想用一个函数来控制东西。我发现我应该使用 history.back() 东西,它确实在主页上工作过一次,从一个直接按钮内。 (似乎无法让它从函数内部工作)

到目前为止,这是我的代码:

<!DOCTYPE html>
<html>
<body>


<iframe align="center" width="100%" height="20%" src="http://www.google.nl" frameborder=yes scrolling="yes" name="iframe" id="iframe"> </iframe>

<button type="button" onclick="ownBack()">Click me</button>

<script type="text/javascript">
function ownBack() {

    var x = document.getElementById('iframe');
    var y = (x.contentWindow || x.contentDocument);
y.history.back();
}
</script>

</body>
</html>

*PS: 使用最新的 firefox,并获得了“忽略 X-frame 选项”插件,因此 google 和所有其他页面应该可以在 iframe 中运行。您可能希望在测试时更改 iframe 的 url。

【问题讨论】:

    标签: javascript html iframe history back


    【解决方案1】:

    你试过了吗?

        iframe.contentWindow.history.go(-1);
        iframe.contentWindow.history.go(1);

    【讨论】:

    • 是的,尝试在多个位置添加它。没有为我工作。在ownBack函数中添加了它,并尝试将其添加到onclick事件中。尝试了不同的方法来获取 iframe 数据,所以我可以更改历史记录。似乎无法让它工作。 (根据几个教程,可以使用 back 和 forward 来代替 go thingy)
    【解决方案2】:

    错误:

    SecurityError: Blocked a frame with origin from access a 跨域框架。

    更多关于这个和解决方法在这里:SecurityError: Blocked a frame with origin from accessing a cross-origin frame

    如果我使用选项 --disable-web-security 运行它,它适用于我的 Chrome。

    【讨论】:

    • 再次阅读“*PS:...”部分。感谢您提供帮助。
    • 开发者控制台在说什么?你得到什么错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2010-11-18
    • 2012-01-01
    相关资源
    最近更新 更多