JavaScript/JQuery 在 Cordova 中为 iframe 启用后退按钮行为
JavaScript/JQuery Enable backbutton behaviour for a iframe in Cordova
我正在科尔多瓦开发一个Webview应用程序。此网络视图应用程序具有 iframe,我在其中显示来自我网站的内容。我的网络视图应用程序的布局,黑色部分是 iframe
<body style="background-color: #f8f8f8">
<div id="web_container">
<iframe id="main_content"
src="https://www.mycollegepicks.in/home"
style="margin: auto auto; overflow: hidden; border: 1px solid #f8f8f8"></iframe>
</div>
<div id='error' style='display: none'></div>
<div id="menu_wrapper" style="min-height: 40px">
<div>
<img class="menu_item_img" src="img/home.png"
style="width: 36px; padding: 2px;" id="home_btn">
</div>
<div>
<img class="menu_item_img" src="img/arrow_left.png"
style="width: 36px; padding: 2px;" id="back_btn">
</div>
<div>
<img class="menu_item_img" src="img/refresh.png"
style="width: 36px; padding: 2px;" id="reload_btn">
</div>
<div>
<img class="menu_item_img" src="img/arrow_right.png"
style="width: 36px; padding: 2px;" id="forward_btn">
</div>
<div>
<img class="menu_item_img" src="img/shut_down.png"
style="width: 36px; padding: 2px;" id="logout_btn">
</div>
</div>
</div>
我写了以下JS-
$( "#logout_btn" ).click(function() {
showToast('Logging Out', 'info');
console.log("Logout Button Clicked");
logout_user();
});
$( "#reload_btn" ).click(function() {
showToast('Reloading Page', 'info');
console.log("Reload Button Clicked");
$( '#main_content' ).attr( 'src', function ( i, val ) { return val; });
});
$( "#home_btn" ).click(function() {
console.log("Home Button Clicked");
$( '#main_content' ).attr( 'src','https://www.mycollegepicks.in/home?app=1&tab_type=home');
});
$( "#back_btn" ).click(function() {
console.log("Back Button Clicked");
iFrameHistory = document.getElementById("main_content").contentWindow.history.length;
if(iFrameHistory)
document.getElementById('main_content').contentWindow.history.back();
writeLog("iFrameHistory "+iFrameHistory);
PopeyeLogger('Iframe History Length '+iFrameHistory,'info');
});
$( "#forward_btn" ).click(function() {
console.log("Forward Button Clicked");
iFrameHistory = document.getElementById("main_content").contentWindow.history.length;
if(iFrameHistory)
document.getElementById('main_content').contentWindow.history.forward();
writeLog("iFrameHistory "+iFrameHistory);
PopeyeLogger('Iframe History Length '+iFrameHistory,'info');
});
但是单击后退按钮会重定向到上一页而不是 iframe 页面后退。
注意:在iframe中,每个页面都通过ajax加载和更改。在每个 ajax 上,我们将 url 推送到浏览器状态。
我遇到了同样的问题,对我有用的解决方案是一个简单的技巧。将 :
<a data-rel="back" data-icon="back">back</a>
by
<a data-id="persistent" href="the page_before" data-transition="slide" data-icon="back"> back</a>
它工作正常
相关文章:
- 如何在 API 调用后和 if 语句中启用提交按钮
- 根据字段的值启用按钮
- 如何启用单选按钮
- 当我的所有 Ng-from 都有效时启用一个按钮
- 如何使用编辑按钮启用表格行中的所有输入
- 多个javascript按钮(启用/禁用)
- 动态按钮启用基于错误组的挖空 js
- 通用JavaScript来处理单选按钮启用/禁用
- 如何在jQuery中所有文本框都有值时按钮启用
- 数据表按钮启用/禁用示例不起作用
- JavaScript按钮启用和禁用与PHP
- 按钮-启用和禁用
- 基于单选按钮启用或禁用文本框
- 当复选框是否被选中时,按钮启用或禁用
- JQuery按钮启用和禁用CSS功能点击
- 按钮启用和禁用单击
- 我如何通过在Javascript中单击重置按钮启用复选框
- 基于单选按钮启用/禁用功能按钮
- Yui 2.0 通过多个单选按钮启用输入
- 基于单选按钮启用/禁用提交按钮