标签: browser-history

Angular 删除 ngDestroy 上的 locationStrategyListener

我想知道为什么我的问题似乎如此重要:因为我们已经实现了服务器端查询、分页等。每当用户在表中进行更改时,我们都需要请求我们的 API(例如,当查询 name=x 客户端时)向后端发送带有相应查询参数的请求)。这也意味着我们需要在返回历史时请求后端,特别是在单击浏览器的返回按钮时。

这适用于以下代码:

constructor(private locationStrategy: LocationStrategy) { }

ngOnInit() {
    this.locationStrategy.onPopState(() => {
        this.refreshHistory();
    })
}
Run Code Online (Sandbox Code Playgroud)

然而,由于在组件的每次初始化中我们都添加了一个新的监听器来监听历史事件,我们很快就会向后端发送数百个相等的请求(因为每个监听器都会调用该refreshHistory()方法)。

我不知何故需要删除ngDestroy界面中的任何 eventListener ,但locationStrategy似乎没有提供这样的功能。有没有(干净的)方法来实现这一目标?

提前致谢!


PS:如果这是一个完全错误的方法,请纠正我。我更习惯于实现后端而不是前端。

event-listener browser-history angular

1
推荐指数
1
解决办法
2692
查看次数

如何从 vue-router 的历史记录中排除路由?

I\xc2\xb4ve 使用 vue-router 实现了选项卡。当用户在这些选项卡中来回单击,但随后又想转到上一页时,他需要多次按“后退”以首先回放每个选项卡访问。

\n\n

是否可以从 vue-router 的历史记录中排除路由,例如:

\n\n
let router = new VueRouter({\n        mode: \'history\',\n        routes: [\n             .\n             .\n             .\n            {\n                path: \'/tabs/\',\n                name: \'tabs\',\n                component: TabPage\n                children: [\n                            {\n                                path: \'tab1\',\n                                name: \'tab1\',\n                                component: Tab1Page,\n                                excludeFromHistory: true\n                            },\n                            {\n                                path: \'tab2\',\n                                name: \'tab2\',\n                                component: Tab2Page\n                                excludeFromHistory: true\n                            },\n\n                ]\n            }\n       ]\n   });\n
Run Code Online (Sandbox Code Playgroud)\n

browser-history vue.js vue-router vuejs2

1
推荐指数
1
解决办法
2752
查看次数

复制删除浏览器历史记录

我想知道Windows Vista和IE 7或8中是否存在编程挂钩或其他功能,让计算机管理员让用户认为他们正在删除他们的Web浏览器历史记录但实际上只是将其复制到另一个文件夹中.

新文件夹将使用尝试删除的日期和时间作为其命名约定.这将用于代替父母控制程序,并且只要用户知道他们已经删除了浏览器历史记录.

internet-explorer copy browser-history

0
推荐指数
1
解决办法
1510
查看次数

通过重新加载第1页使浏览器返回,然后再次滚动它

解释我在尝试解决的问题:

我有一个显示文件列表的网页(file_list.php),每个文件旁边都有一个删除它的按钮.当用户按下DELETE按钮接近某个文件名时,浏览器会转到一个名为删除该文件的脚本delete_file.php,然后它会告诉浏览器返回file_list.php

delete_file.php使用简单header("Location: file_list.php”);回去file_list.php

当浏览器返回到file_list.php重新加载页面时,它不会再将其向后滚动到用户之前的位置.因此,假设用户滚动文件列表并删除了最后一个文件,当浏览器再次显示页面时file_list.php,它将不会再次滚动到页面底部.



我发表的工作内容:

我发现了一个奇怪的方式来解决这个问题,基本上而不是使用header("Location: file_list.php”);delete_file.php我简单地使用javascript调用window.history.go(-1).

用户在会话中时(这只是使用PHP session_start函数),这种解决方法非常有效:浏览器RELOADS file_list.php页面,然后将其滚动回原来的位置. 但是如果用户不在会话中,浏览器会滚动页面,但之前它不会重新发送它,因此用户仍然会在文件列表中看到他删除的文件.



问题

  1. 你是否知道如果重新开始会话,即使我们不在会话中,也会重现浏览器的行为?

  2. 你知道一种方法,甚至是另一种解决这个问题的方法吗?

谢谢!

我知道我可以使用AJAX删除文件,所以我不必每次都去delete_file.php,但这不是答案.

javascript php session header browser-history

0
推荐指数
1
解决办法
1653
查看次数

Javascript在将其放入历史记录之前更改url参数

我正在使用datatables JQuery插件.我使用它与AJAX和分页(服务器端).每行包含指向该记录详细视图的链接.单击该链接然后在后退按钮上,我想返回上一页.(注意:不能使用数据表自带状态保存).

这可以实现如果您可以在将url参数放入历史记录之前将其添加到当前URL.

可以这样做吗?纯JS或JQuery并不重要.

(注意:我很新做这种东西,已经读过关于使用#的内容,但从未这样做过,所以如果你建议请提供一个适用于我的问题的例子)

编辑:

非常基本的JQuery插件指南bbq(http://benalman.com/projects/jquery-bbq-plugin/)

假设URL的散列为#a = 2&b = test,您可以通过以下方式获取值:

//true = optional converts 2 to an integer, false to boolean,...
var a = $.bbq.getState('a',true);
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式更改/添加值:

var hash = "a=3&b=hello";
$.bbq.pushState(hash);
Run Code Online (Sandbox Code Playgroud)

pushState在绑定时触发hashchange事件.要绑定事件,但在doucment.ready函数中跟随:

// called when # part of URL is modified
$(window).bind( 'hashchange', function( event ) {
    var hash = event.fragment; // full hash as string
    var a = event.getState('a', true ); // value for a
    // here do meaningful action like an AJAX request using the hash …
Run Code Online (Sandbox Code Playgroud)

javascript browser-history http-request-parameters

0
推荐指数
1
解决办法
3539
查看次数

是否可以在PHP代码中跟踪浏览器历史记录?

我想知道是否在php页面上我们可以获得浏览器历史记录?假设我想显示一个php页面,如果之前访问过该浏览器上的特定链接,则显示空白页面.有可能吗?

php browser-history

0
推荐指数
1
解决办法
4931
查看次数

如何使用Javascript禁用功能键?

我有一个页面,我需要禁用功能键主要是F12(Developertools).我在页面中显示一些敏感数据,所以在任何情况下我都无法让用户看到html并获取隐藏字段.我检查了一些javascript,它几乎适用于所有键,除了功能键,如f1,f12等.

无论如何我可以在浏览器中禁用这些按钮吗?

document.onkeyup = KeyCheck;
function KeyCheck() {
    var KeyID = event.keyCode;
    alert(KeyID);
    switch (KeyID) {
        case 123:  //F12 KEY CODE         
            alert('hello');
            return false;
            break;            
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我用于覆盖密钥的代码.当我搜索时,F12键的键码是123,我使用相同的代码来覆盖它.但不幸的是,当按下F12,F1等按钮时,它甚至没有击中"CASE"并且没有出现消息框.

请帮帮我.

javascript browser asp.net browser-history

0
推荐指数
1
解决办法
9075
查看次数

如何向在新选项卡中打开的外部页面添加“后退”按钮?

对于这个广泛的问题,我很抱歉,但我不知道从哪里开始。

我的网站中有一个通过 MailChimp 生成的选择表单。当用户选择时,我会让他进入一个自定义页面。该页面在新选项卡中打开。

我找到了这样的解决方案:

<input type="button" value="Go Back From Where You Came!" onclick="history.back(-1)" />

<FORM><INPUT Type="button" VALUE="Back" onClick="history.go(-1);return true;"></FORM>
Run Code Online (Sandbox Code Playgroud)

他们将在内部导航中工作,但不适用于我想要实现的目标。

html javascript browser-history

0
推荐指数
1
解决办法
2602
查看次数

如何在C#中使用WebBrowser控件清除浏览历史记录

我希望WebBrowserWebBrowser完成浏览后清除C#中控件 的浏览历史记录.

这是我的代码:

try
{
    foreach (string sr in File.ReadAllLines("link.txt"))
    {
        webBrowser1.Navigate(sr);
        webBrowser1.ScriptErrorsSuppressed = true;
    }
    while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    {
        Application.DoEvents();
    }                               
}
catch(Exception)
{
    MessageBox.Show("Internet Connection not found","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
    this.Close();
}
Run Code Online (Sandbox Code Playgroud)

c# browser webbrowser-control browser-history

-1
推荐指数
1
解决办法
1万
查看次数

禁用右键单击浏览器的后退和前进按钮

有没有办法使用javascript或silverlight禁用右键单击浏览器的后退和前进按钮?当您右键单击按钮时,我不希望用户访问通过上下文菜单显示的历史列表.我只希望用户能够左键单击后退和前进按钮进行导航.

javascript browser navigation browser-history

-2
推荐指数
1
解决办法
1368
查看次数