我想索引Google Chrome中的所有用户操作和网站.据我所知,谷歌chrome索引sqlLite数据库中的所有数据.我如何以编程方式访问我自己的应用程序中的chrome Web历史记录
我正在制作一个'app like'网页.实际页面比浏览器视口宽,后者隐藏了溢出.单击不同的链接会将CSS更改为不同部分的动画.这是一个非常简单的演示:http: //smartpeopletalkfast.co.uk/pos/
在这个阶段我正在进行演示,而不是生产网站.我想拦截浏览器后退按钮,所以如果你导航到一个部分,你将被带回上一部分,而不是离开网页.在一个完美的世界中,这将发生在用于导航到部分的相同动画中.
这可以实现吗?从研究我不认为它可能拦截和禁用默认浏览器后退按钮.
我知道他们有很多关于禁用此网站上的浏览器后退按钮的帖子,通常回复是不是!然而,在我的页面中进入不同的部分就像导航到单独的页面,所以我认为我想要实现的是符合用户的期望.
通常使用基于AJAX的应用程序实现类似的方式是使用HTML5的历史API.据我所知,您需要将带有片段的URL添加到浏览器的历史记录中,这样就像mysite.com#section2.我不确定这对我有用,因为水平滚动不是基于像垂直滚动这样的片段链接.也许我可以使用JavaScript来检测URL何时以#section2这样的片段结束并更改CSS以使第二部分在视口中?我想虽然没有办法给它制作动画?
我使用NavigationView作为根面板.我试图完成的事情是在用户导航到我的应用程序更深处时将视图推送到我的根面板,并在用户返回时弹出它们.
这是一个显示我的问题的简单示例:我有一种显示一些条目详细信息的视图.
Ext.define('MyApp.view.EntryDetails', {
extend: 'Ext.Panel',
xtype: 'entrydetails',
config: {
tpl: '<div>{id}</div>'
}
});
Run Code Online (Sandbox Code Playgroud)
我还有一个配置为侦听以下路由的控制器:"entry /:id",并在此路由匹配时将新的entrydetails视图推送到navigationstack(NavigationView).
Ext.define('MyApp.controller.EntryDetails', {
extend: 'Ext.app.Controller',
config: {
routes: {
'entry/:id': 'showEntry'
},
refs: {
navview: 'mynavigationview'
},
},
showEntry: function(id){
this.getMain().push({
xtype: 'entrydetails',
data: {id:id}
});
}
});
Run Code Online (Sandbox Code Playgroud)
好的,这很好用.现在让我们首先假设我导航到:index.html#entry/1.这将按照我的意愿将新视图推送到堆栈.然后我点击另一个链接index.html#entry/2.另一个视图被推入堆栈,这也是预期的行为.现在,当我单击"浏览器"后退按钮时,会出现问题.这会将url更改为index.html#entry/1并将另一个视图推送到我的堆栈.我想弹出一个视图而不是添加另一个视图.如果我按下工具栏后退按钮,则会按照我的意愿弹出视图,但浏览器后退按钮不是这种情况.
我确实理解为什么会发生这种情况:Sencha触摸框架不知道网址更改是否是由于我使用与之前的浏览器历史记录网址相同的网址按下另一个链接,或者我是否按下浏览器上的后退按钮.我的所有代码都知道,当它看到一个url更改为"entry /:id"时,应该将另一个视图推送到堆栈.
解决这个问题的最佳方法是什么.如何检测到按下浏览器的后退按钮并从导航视图中弹出一个视图.
我曾想过检查更改后的url是否与我的导航堆栈中的某个视图相似,但是我不确定这是否是这样做的.
欢迎任何有关该主题的帮助/讨论!
extjs deep-linking browser-history sencha-touch sencha-touch-2
当我的页面在iframe中时,我注意到Internet Explorer的奇怪行为.看来iframe在调用window.history.back()时会自动重新加载,即使只有URL中的哈希值应该改变.当页面不在iframe内部时,它表现正常并且不会重新加载页面.知道为什么会发生这种情况以及如何预防吗?
我创建了一个小提琴,将在IE9中演示:
jsfiddle使用iframe,因此行为将是iframe行为.单击"#foo"和"#bar"将更改URL中的哈希值.现在单击"BACK"链接将触发window.history.back().请注意,执行此操作时,时间戳会更改,表示页面正在重新加载.
或者,如果您直接加载iframe:
http://fiddle.jshell.net/peh96/5/show/
您会注意到单击"返回"时时间戳不会更改.
这只是一个IE问题,因为无论是否在iframe内部,Chrome和Firefox都是一致的.
知道如何防止这种重装吗?
我正在为网站创建一个小的谷歌浏览器扩展程序,我想在特定页面上更改一些HTML.
问题是网站通过ajax加载他的内容,并且大量使用history.pushState API.所以,我添加了这个东西来表明:
"content_scripts": [
{
"matches": ["http://vk.com/friends"],
"js": ["js/lib/jquery.min.js", "js/friends.js"],
},
]
Run Code Online (Sandbox Code Playgroud)
当我第一次打开页面或重新加载它时,一切正常.但是当我在网站页面之间导航时,chrome不会在"/ friends"页面上插入我的脚本.我认为这发生了,因为URL实际上没有改变.他们使用history.pushState()等,chrome无法再次插入/重新运行我的脚本.
这有什么解决方案吗?
javascript google-chrome browser-history google-chrome-extension vk
我想完全删除一些历史条目,history.pushState而不是history.replaceState用来修改它们.我该怎么做到这一点?
我有一个搜索页面,允许用户深入分类和/或输入搜索词.我想让用户能够使用后退按钮撤消这些操作.使用AngularJS,我如何让这个页面为每个操作的浏览器历史记录添加条目.我不能使用HTML5 pushstate.
我正在尝试开发一个Chrome扩展程序,将Angular应用程序注入用户的浏览器窗口,以便创建一个交互式侧边栏.通过内容脚本将iframe添加到页面并将框架的源设置为扩展目录中的html文件,我大部分都能够达到我想要的100%.
不幸的是,因为Angular应用程序有多个路由(允许用户登录并查看许多不同类型的信息),我发现它正在干扰用户按预期使用其后退/前进按钮; 由于哈希值发生变化,iframe的源会发生变化,因此会为历史记录保存一个新条目.
我似乎无法为此找到或创建一个解决方法; 是否有一些聪明的方法可以使Angular不生成历史条目,或者实现创建不使用iframe而不保存到历史记录的侧边栏,或禁用iframe保存到历史记录?
javascript html5 browser-history google-chrome-extension angularjs
我正在使用Angular.js 1.3,使用ui-router.我有3页,page1.html,page2.html,page3.html.
当用户点击page1时,page2将打开,但我想保存第1页的滚动状态,用户在点击之前,所以在点击后退按钮后,他将处于相同的滚动状态.
为了解决这个问题,我在page1.html上打开了page2.html,在iframe中,并给它绝对位置显示在page1.html上,我使用的是:
history.pushState({}, '', '/page2.html');
改变网址.这个实现工作正常.
现在,当用户点击page2.html上的链接时,它应该打开page3.html,就像我使用的普通链接一样:
$state.go("page3")
Run Code Online (Sandbox Code Playgroud)
问题是现在状态变化,并且page3.html加载,但url仍然是/page2.html,url没有变化.
我甚至尝试过:
history.pushState({}, '', '/page3.html');
Run Code Online (Sandbox Code Playgroud)
仍然网址没有变化.任何人都知道它为什么会发生.
谁能向我解释路由在Reactjs中是如何工作的?
browserHistory.push('/location')
Run Code Online (Sandbox Code Playgroud)
仅更新网址栏,而不重定向到它。
browserHistory.goBack()
Run Code Online (Sandbox Code Playgroud)
有效,但仅当以前访问过页面时有效,因此为名称。这使我很难理解browserHitory.goForward()的工作方式?
成功登录后,我一直试图重定向到仪表板。而已。
根据我的阅读,React不允许重新加载页面。如果我们尝试刷新页面或在url中写入地址,它将显示无法获取/ path错误;除非在服务器上发出请求。我试图在服务器上创建路由,但是无法获得有关如何实现的语法。我仅在Node中编码了将res.send()发送到客户端应用程序的程度。如何渲染该路径?因为渲染到该路径将意味着Node的App.js具有React应用程序的视图引擎。我不知道是否足够清楚,但是任何建议都会有所帮助。谢谢。
browser-history ×10
javascript ×6
angularjs ×3
html5 ×3
back ×2
.net-3.5 ×1
c# ×1
deep-linking ×1
extjs ×1
iframe ×1
jquery ×1
mean-stack ×1
node.js ×1
pushstate ×1
reactjs ×1
sencha-touch ×1
sqlite ×1
url ×1
vk ×1