标签: html5-history

使用历史记录API时更改页面标题?

我正在尝试HTML5历史API,我一直在阅读,即使您应该能够使用它来更改文档的标题,但没有主要的浏览器实现这一点.

有问题的pushState函数采用以下参数:

history.pushState(state object, title, url);
Run Code Online (Sandbox Code Playgroud)

我不太清楚为什么实现上述功能的浏览器没有实现标题方面,但事情就是如此.

我的问题是,如果我想根据历史api更改title属性,那么最好的方法是什么?Firefox至少表示它可能在未来某个时候实现上述方法:

Firefox目前忽略了这个参数,虽然它可能在将来使用它.

(https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history)

这让我想到我放在那里的任何东西都可能与将来决定实现它的浏览器冲突.

有没有确定的火灾未来证据,'SEO安全'这样做的方式?或者我应该保留pushState代码,因为希望浏览器在将来的某个时候实现这一点?

html javascript html5 browser-history html5-history

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

获取上一页phonegap javascript

如何在phonegap上使用javascript获取上一页?

我想返回(window.history.back())只有当我来自一个特定的html文件时,否则我想在按下后退按钮时转到另一个html页面.所以我想知道哪一个是历史的前一页.

我已经谷歌搜索了一段时间,我没有找到适合我的答案.

javascript html5-history cordova

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

使用Javascript从url中删除参数

我想从URL中删除参数而不重新加载或刷新页面.

我使用下面的代码,它工作正常.

jQuery(document).ready(function($) {    
    window.history.pushState("", "", "/" );
});
Run Code Online (Sandbox Code Playgroud)

但问题是,如果我点击浏览器后退按钮,我可以在网址中看到参数.

html javascript php jquery html5-history

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

你能反过来通过react-router v4 hashHistory吗?

想知道如何使用hashRouter而不是在react-router v4中使用browserRouter返回到反应Web应用程序中的先前路由?

我发现这个问题似乎不起作用,即使它说没有浏览器mixin需要(加上我认为它谈论的是旧的react-router版本)但是,我见过的所有其他解决方案都取决于browserHistory.

是否可以使用hashHistory?

html5-history reactjs react-router-v4

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

获取URL参数并过滤掉特定参数

我想过滤掉URL中的特定参数.我有以下情况:

  1. 页面已加载(例如:http://test.com/default.aspx?folder = app&test = true)
  2. 加载页面时,会调用一个函数将条目推送到历史记录(pushState):(例如:http://test.com/default.aspx?folder = app&test = true&state = 1)
  3. 现在我想调用一个函数来读取所有参数并输出所有这些参数的状态.所以我最终得到:"?folder = app&test = true"(只是一个字符串值,没有数组或对象).请记住,我不知道是什么参数的所有名字都execpt的state参数

我试过了什么

我知道我可以使用以下代码获取所有参数:

window.location.search
Run Code Online (Sandbox Code Playgroud)

但它会导致:

?folder=app&test=true&state=1

我尝试拆分网址,例如:

var url = '?folder=app&test=true&state=1';
url = url.split('&state=');
console.log(url);
Run Code Online (Sandbox Code Playgroud)

但这不起作用.另外,因为每个请求中的state数字都是动态的.一个解决方案可能是删除url中的最后一个参数,但我也不知道是否会出现这种情况,因此我需要一些过滤机制,只会过滤掉

state=/*regex for a number*/
Run Code Online (Sandbox Code Playgroud)

javascript jquery html5-history

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

用户登录后将 Vue Router 重定向到预期页面

我正在开发一个应用程序,该应用程序会阻止用户访问除主页和注册之外的任何页面,除非他们已登录。我有一个包罗万象的路由防护,可以在尝试访问页面时检查用户是否已登录并重定向到如果返回 false 则登录。在登录组件中,用户登录后,他们将被定向到主页。我想要设置的是,当用户登录时,如果他们之前访问过某个页面或直接输入了页面的 url,则重定向到应用程序的最后一个页面,如果没有重定向到主页。例如:

用户导航到 my.app/{somePage} -> 路由防护检查登录返回 false -> 重定向到 my.app/sigin -> 用户成功登录 -> 重定向到 my.app/{somePage}

//Route Guard
router.beforeEach((to, from, next) => {
    if(!signedIn()){
        router.replace('/signin')
    }
    else{
        next()
    }
})


//Successful signin
signInSuccess(){
    //Want this to redirect to intended page if exists
    this.$router.replace('/')
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用 this.$router.go(-1) 进行重定向,但是当我重定向到路由防护中的登录页面时,预期的路由似乎没有被推入历史记录中。

我还尝试在 vuex 商店中设置状态以捕获预期路线并在登录后使用它进行重定向,但路线防护似乎会重新加载整个页面,因此商店状态会重置。

我唯一能想到的另一件事是将预期的页面路由存储在浏览器本地存储中,但这似乎不是一个可靠的解决方案。

javascript html5-history vue.js vue-router

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