我正在编写一个应用程序,如果用户回来,它可能会重新发送相同的信息,并扰乱数据的stream和完整性。 如何禁用那些使用JavaScript和不使用JavaScript的用户?
我曾经在SO和其他几个网站上看过这个问题,但是其中大多数都是过于具体或者过时的。 我希望有人可以在这里提供一个明确的答案,而不会被炒作。 当用户在浏览器中打印时,有没有办法通过CSS或JavaScript来更改默认的打印机设置? 当然,“从他们的浏览器打印”我的意思是某种forms的HTML,而不是PDF或其他插件依赖MIMEtypes。 请注意: 如果某些浏览器提供了此function,而其他浏览器则不提供(或者您只知道如何为某些浏览器执行此操作),则欢迎使用特定于浏览器的解决scheme。 同样的,如果你知道一个主stream的浏览器对EVER有特殊的限制,这也是有帮助的,但是有些相当新的文档是值得赞赏的。 (当XYZ在过去三年中对上述政策做出重大改变时,简单地说“这违背了XYZ的安全政策”并不是很有说服力)。 最后,当我说“更改默认打印设置”时,我并不意味着永远只为我的页面,我特指打印边距,页眉和页脚。 我非常清楚,CSS提供了更改页面方向以及页边距的选项。 Firefox的许多困难之一是。 如果我将页边距设置为1英寸,则将其添加到已经放置的半英寸。 我非常希望减less我客户网站上PDF的使用,但是主要关心的是呈现方面的侵权(以及缺乏可靠性)。
在使用JSP和Servlets在java中实现的Web应用程序中; 如果我将信息存储在用户会话中,则将从同一浏览器的所有选项卡共享此信息。 如何区分浏览器选项卡中的会话? 在这个例子中: <%@page language="java"%> <% String user = request.getParameter("user"); user = (user == null ? (String)session.getAttribute("SESSIONS_USER") : user); session.setAttribute("SESSIONS_USER",user); %> <html><head></head><body> <%=user %> <form method="post"> User:<input name="user" value=""> <input type="submit" value="send"> </form> </body></html> 将这个代码复制到一个jsp页面( testpage.jsp )中,将这个文件部署在服务器上的一个Web应用程序的现有上下文中(我使用Apache Tomcat),然后使用正确的URL打开浏览器(FF,IE7或Opera) localhost/context1/testpage.jsp ),在input中input你的名字并提交表单。 然后在同一个浏览器中打开一个新的标签页,然后你可以在新标签页上看到你的名字(从会话中获得)。 浏览器caching要小心,有时似乎不会发生,但它在caching中,刷新第二个选项卡。 谢谢。
如果他们正在使用v9之前的Internet Explorer版本,我想将我们的网站用户跳转到错误页面。 只是不值得花时间和金钱来支持IE pre-v9 。 所有其他非IE浏览器的用户都很好,不应该被反弹。 这是build议的代码: if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE var badBrowser=( navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too ); if(badBrowser){ // navigate to error page } } 这个代码会诀窍吗? 为了避免一些可能会以我的方式发表的意见: 是的,我知道用户可以伪造他们的useragentstring。 我不关心。 是的,我知道编程专业人员更喜欢嗅探function支持而不是浏览器types,但是我不觉得这种方法在这种情况下是合理的。 我已经知道,所有(相关的)非IE浏览器都支持我需要的function,所有pre-v9 IE浏览器都不支持。 检查整个网站的function将是一个浪费。 是的,我知道有人试图访问使用IE v1 (或> = 20)的网站不会得到“badBrowser”设置为true,警告页面将不会正确显示。 这是我们愿意承担的风险。 是的,我知道微软有“有条件的评论”,可以用于精确的浏览器版本检测。 IE不再支持IE […]
什么是networking浏览器的cookie的最大大小? 我知道一个cookie的最大尺寸是4KB,但是密钥是否也有一定的限制?
假设我想定义一个URI,例如: myapp://path/to/what/i/want?d=This%20is%20a%20test 必须由我自己的应用程序或服务来处理。 请注意,该scheme是"myapp"而不是"http"或"ftp" 。 这正是我的意图:为Android OS定义我自己的全球URI模式。 这可能吗? 这有些类似于某些程序已经在做什么,例如Windows系统,如Skype( skype:// )或任何torrent下载程序( torrent:// )。
我正在寻找如何在浏览器(在同一个域,而不是CORS)的多个标签或窗口之间进行通信,而不留下痕迹。 有几个解决scheme: 使用窗口对象 的postMessage cookies localStorage的 第一种可能是最糟糕的解决scheme – 您需要从当前窗口打开一个窗口,然后只要保持窗口打开,就可以进行通信。 如果你在任何一个窗口重新加载页面,你很可能失去了沟通。 第二种方法,使用postMessage,可能使跨源通信,但遭受与第一种方法相同的问题。 你需要维护一个窗口对象。 第三种方法,使用cookie,在浏览器中存储一些数据,这可以看起来像是发送一个消息到同一个域的所有窗口,但问题是,你永远不知道所有的标签页是否已经阅读过“消息”打扫干净。 您必须实施某种超时才能定期读取cookie。 此外,您受限于cookie的最大长度,即4KB。 第四个解决scheme,使用localStorage,似乎克服了cookies的限制,甚至可以监听使用事件。 怎么样?
我正在显示非常敏感的数据。 用户从我的服务器注销后,我不希望另一个用户能够看到数据击中浏览器的后退button。 我怎样才能做到这一点?
XHTML中的所有有效自闭元素(例如,是什么)(由主要浏览器实现)? 我知道XHTML技术上允许任何元素自封闭,但我正在寻找所有主stream浏览器支持的元素列表。 请参阅http://dusan.fora.si/blog/self-closing-tags,了解由诸如<div />之类的自closures元素引起的一些问题的示例。
我在做在线测验应用程序。 我想限制用户,而回到考试中。 我已经试过下面的脚本,但它停止了我的计时器。 我该怎么做,请build议我。 我已经包含源代码。 计时器存储在cdtimer.js中 <script type="text/javascript"> window.history.forward(); function noBack() { window.history.forward(); } </script> <body onLoad="noBack();" onpageshow="if (event.persisted) noBack();" onUnload=""> 我有考试计时器,需要从MySQL数据库的考试时间,并启动计时器,因此它停止时,我把代码禁用后退button。 会有什么问题。