javascript - 使用纯 JavaScript/JQuery 的 iframe 的后退和前进控制
问题描述
我需要创建一个严格控制的环境来打开某些需要向后和向前导航控件的页面。我在这里闲逛并发现了这个问题并试图实施它,但我遇到了问题。
对于正在进行的 HTML 和 Javascript,我有以下内容,假设它已经设置样式(重用以前项目中的代码),并且 JQuery 已经列在<head></head>
标签中:
<body>
<div id="header">
<div id="shortcutbar">
<a id="backBtn" onclick =="iframeBack();"></a>
<a id="forwardBtn" onclick =="iframeForward();"></a>
</div>
</div>
<div id="displayContainer">
<iframe id="display" src="https://website.goes.here/">
</iframe>
</div>
<script>
function iframeBack() {
$("#display").contentWindow.history.go(-1);
}
function iframeForward() {
$("#display").contentWindow.history.go(1);
}
</script>
</body>
检查控制台,我得到以下错误:Uncaught TypeError: Cannot read property "history" of undefined
它给出了在 HTML 中调用函数的任何行,以及脚本标记中函数本身的行。
我不知道什么不起作用,因为到目前为止我发现的所有内容都只是指我已经输入的内容的一些变体。
解决方案
jQuery 对象没有contentWindow
属性。
您需要基础元素 ... $("#display")[0].contentWindow
。
话虽如此,如果 iframe 源来自与主页不同的来源,则您将受到安全限制,无法使用 javascript 访问框架窗口
推荐阅读
- c# - 计算器类 - 如何在用户不必选择操作类型两次的情况下更新 displayValue?
- c++ - boost::random 经常从不同状态的相同种子生成相同的值
- php - Laravel 数据透视表的问题
- java - 膨胀类 com.google.android.material.tabs.TabLayout 时出错 - Android 问题
- image-processing - 人脸识别中的误报
- python - 如何在字典字典中添加 numpy 数组作为值?
- javascript - 确保我从一系列异步函数中获取返回值的任何方法
- android - Chronometer font doesn't change in android
- bash - bash assign variable inside if condition
- java - matching string array content with regular expression java