是否有可能从浏览器获取所有过去的ajax调用的历史记录?
如果没有,是否有任何ffx插件或类似的将以与普通浏览器历史记录类似的方式存储您的所有ajax请求?
<script type="text/javascript>
var x = 0; //this occurs in the beginning of the page.
$("#button").onclick{
x = 1;
}
</script>
Run Code Online (Sandbox Code Playgroud)
假设变量"x"变为1.然后用户单击链接.当用户点击"返回"时,x是0还是1?
我正在一个女性庇护所的网站上工作,并希望包含一个链接,以离开该网站并删除其在浏览器历史记录中的条目.目标是覆盖寻求帮助的人的轨道.
理想情况下,我想使用像jQuery这样的东西来实现这个功能.目前,备选方案是一个页面,其中包含有关如何手动清除每个浏览器历史记录的说明.
为什么goog.history.Html5History对象每次更改片段时都会触发goog.history.EventType.NAVIGATE事件两次?这是代码的示例:
var history = goog.history.Html5History.isSupported()
? new goog.history.Html5History()
: new goog.History();
goog.events.listen(history, goog.history.EventType.NAVIGATE, function(e) {
console.log(['navigation', e.target.getToken()]);
});
history.setEnabled(true);
Run Code Online (Sandbox Code Playgroud)
这是日志:
["navigation", "!/properties/new"]
["navigation", "!/properties/new"]
Run Code Online (Sandbox Code Playgroud)
UPD:正如我所知,回调中有两个不同isNavigation的e对象字段值.第一次它false取值,第二次它true取值.isNavigation手段:
isNavigation如果事件是由浏览器操作触发的,则为True,例如前进或后退,单击链接,编辑URL或调用window.history.(go | back | forward).如果通过setToken或replaceToken调用更改了令牌,则返回false.
但是如何让一个人甚至被解雇?
是否可以在不刷新页面的情况下自动将url example.com/4000/title-2/#!4000更改为example.com/4000/title-2?基本上是从URL中删除"/#!4000".请注意,在hashbang之前删除"/"并不仅仅是hashbang很重要.
我正在使用AngularJS框架创建一个应用程序.
问题:
当我将我的应用程序跳出到不同的域或页面然后当我使用历史记录返回按钮返回到我的应用程序时,我只返回JSON.当我跳出我的应用程序浏览历史记录时,同样的情况发生,然后当我使用前进按钮转到我的应用程序时,我再次只获得JSON.后退/前进在我的应用程序中运行良好,只有当我去不同的域时才会发生.
这是为什么?我认为这与缓存一些方法有关,因为当我返回/转发到我的应用程序时,没有请求发送到服务器.
如果你去这个网址,你可以看到我在说什么 - http://test.deving.cz/admin/prihlasit/.然后回去然后前进.
我的设置:
我的应用程序配置为使用HTML5历史记录API.对于启动mydomain.com/admin/的网址,我总是返回包含angular的index.hmtl.然后,对于我的应用程序中的每个其他URL,将发送两个请求.一个用于模板,一个用于数据(JSON).
例:
$routeProvider.when('/admin/page/', {controller: 'PageListCtrl', templateUrl: '/templates/page/list/', resolve: 'PageListCtrl.resolve'})
PageListCtrl:
angular.module('page').controller('PageListCtrl', ['$scope', 'data', function($scope, data) {
$scope.pages = data;
}]);
Run Code Online (Sandbox Code Playgroud)
解决功能:
resolve = {data:
function($http, $q){
var delay = $q.defer();
$http.get().success(function(data){
delay.resolve(data['data']);
});
return delay.promise;
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何配置角度或我的应用程序告诉浏览器不要缓存数据并始终获取index.html然后让angular执行请求?
当我window.history.pushState在浏览器的历史记录中返回时,我不会自动重新加载具有页面的URL ,例如通过单击"历史记录后退按钮".为什么页面不会自动重新加载?我可以改变这种行为吗?
这里有一小段代码来举例说明这个"问题":
<html>
<head>
<title>Location test</title>
<script>
function load() {
var value = window.location.search.substr(1);
document.getElementById('myInput').value = value;
document.title = 'Location test - ' + value;
}
function set(el) {
window.history.pushState('', '', window.location.pathname + '?' + el.value);
document.title = 'Location test - ' + el.value;
}
</script>
</head>
<body onload="load();">
<input id="myInput" type="text" onkeyup="set(this);">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
只需在文本字段中写入内容,浏览器历史记录就会相应更新.单击浏览器的历史记录后退按钮不刷新页面.您必须手动刷新它.
我通过在运行的网站上插入我自己的"后退按钮"来解决这个问题window.history.back(); location.reload();.但是如果普通的浏览器"历史后退按钮"能够做到这一点,我会很高兴.
我为我的行为编写测试,即使用
{ browserHistory } from 'react-router';
Run Code Online (Sandbox Code Playgroud)
当我运行我的测试时,导入的browserHistory由于未知原因未定义.因此,测试会抛出一个错误 - "无法读取属性'推送'的未定义"; 我不知道,为什么browserHistory未定义,如果它在我的应用程序中工作.有人能帮助我吗?
我正在为开发人员使用快递服务器。我正在为webpack配置使用webpack-dev-middleware。我想使用express实现等效的historyApiFallback。
historyApiFallback可用于webpack-dev-server。每当出现404错误时,它都会忽略发送404错误,并让客户端通过历史API处理路由。
如何使它与Express和webpack-dev-middleware一起使用?
const webpackMiddleware = require('webpack-dev-middleware');
const webpack = require('webpack');
const webpackConfig = require('../webpack.config.js');
app.use(webpackMiddleware(webpack(webpackConfig), { publicPath: '/' }));
Run Code Online (Sandbox Code Playgroud) 我在“ head”部分和sessionStorage变量中使用Java脚本来控制网页的查看;以确保执行正确的登录和前提事件。在此示例中,我将使用3页,默认,登录和菜单页。
目的是防止通过地址栏直接访问“登录”和“菜单”页面,而无需先访问“默认”页面。
默认页面具有以下条件:
<head>
<script>
<!-- Page Access Check -->
sessionStorage.Page="Default";
if(sessionStorage.MemberData){
sessionStorage.Page="Menu";
location.assign("Menu.asp");
}
</script>
</head>
Run Code Online (Sandbox Code Playgroud)
默认页面是网站的访问点,所有用户都必须在此输入。sessionStoreage.Page变量指示允许显示的页面。在后续的代码示例中,此变量的目的将变得更加明显。
如果当前用户已经成功登录,因此不需要再次登录,则将设置sessionStorage.MemberData。因此,将sessionStorage.Page变量设置为“ Menu”,并将用户定向到Menu页面。
<body>
<script>
$(document).ready(function(){
<!-- Initialize Event Handlers -->
$("#LoginButton").one("click",function(){
sessionStorage.Page="Login";
location.assign("Login.asp");
});
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
“默认”页面具有一个链接到“登录”页面的按钮,成功登录后,会将用户带到“菜单”页面。“登录”按钮将sessionStorage.Page变量设置为“登录”,并将用户定向到“登录”页面。
<head>
<script>
<!-- Page Access Check -->
switch(sessionStorage.Page){
case "Login": // Page Allowed
break;
default:
history.back();
}
</script>
</script>
Run Code Online (Sandbox Code Playgroud)
到达“登录”页面后,将检查sessionStorage.Page变量,如果该值设置为“登录”,则将授予对该页面的访问权限。否则,用户将被引导回到他们来自的页面,即先前所在页面的“默认”页面。
sessionStorage.MemberData=JSON.stringify(MemberData);
sessionStorage.Page="Menu";
location.assign("Menu.asp");
Run Code Online (Sandbox Code Playgroud)
成功登录后,将设置sessionStorage.MemberData(请参阅“默认”页面中的检查),将sessionStorage.Page变量设置为“ Menu”,并将用户定向到Menu页面。
<head>
<script>
<!-- Page Access Check -->
switch(sessionStorage.Page){
case "Menu": // Page Allowed
break;
default:
history.back();
}
</script> …Run Code Online (Sandbox Code Playgroud) browser-history ×10
javascript ×8
ajax ×1
angularjs ×1
ava ×1
express ×1
html5 ×1
jquery ×1
pushstate ×1
react-router ×1
unit-testing ×1
webpack ×1