标签: browser

如何使用CSS媒体查询检测设备方向?

在JavaScript中,可以使用以下方法检测方向模式:

if (window.innerHeight > window.innerWidth) {
    portrait = true;
} else {
    portrait = false;
}
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法只使用CSS检测方向?

例如.就像是:

@media only screen and (width > height) { ... }
Run Code Online (Sandbox Code Playgroud)

css browser tablet css3 media-queries

138
推荐指数
4
解决办法
16万
查看次数

如何使用javascript停止浏览器后退按钮

我正在做php的在线测验应用程序.我想在回到考试时限制用户.我尝试过以下脚本,但它会停止我的计时器.我该怎么办请建议我.我已经包含了源代码.计时器存储在cdtimer.js中

<script type="text/javascript">
        window.history.forward();
        function noBack()
        {
            window.history.forward();
        }
</script>
<body onLoad="noBack();" onpageshow="if (event.persisted) noBack();" onUnload="">
Run Code Online (Sandbox Code Playgroud)

我有考试计时器,它从mysql数据库中获取考试时间,并相应地启动计时器,当我把代码禁用后退按钮时它停止.会是什么问题.

javascript browser

137
推荐指数
15
解决办法
45万
查看次数

是否可以在浏览器中运行沙盒JavaScript?

我想知道是否可以在浏览器中运行JavaScript沙箱,以防止访问HTML页面中运行的JavaScript代码通常可用的功能.

例如,假设我想为最终用户提供一个JavaScript API,让他们定义在"有趣事件"发生时运行的事件处理程序,但我不希望这些用户访问该window对象的属性和功能.我能做到吗?

在最简单的情况下,假设我想阻止用户呼叫alert.我能想到的几种方法是:

  • window.alert全球重新定义.我不认为这是一种有效的方法,因为在页面中运行的其他代码(即用户在其事件处理程序中未编写的内容)可能想要使用alert.
  • 将事件处理程序代码发送到要处理的服务器.我不确定将代码发送到服务器进行处理是正确的方法,因为事件处理程序需要在页面的上下文中运行.

也许服务器处理用户定义的函数然后生成要在客户端上执行的回调的解决方案可行吗?即使这种方法有效,是否有更好的方法来解决这个问题?

javascript browser sandbox

136
推荐指数
8
解决办法
4万
查看次数

为什么Chrome和IE会将"Mozilla 5.0"放入他们发送到服务器的用户代理中?

当我自己向服务器发送许多请求时,我发现在IE中,如果我选择用户字符串的值为opera用户字符串,那就太棒了

User-Agent  Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Internet Explorer中选择另一个浏览器,则首先将Mozilla 5.0放入用户字符串中.

当我从Chrome发送ajax请求时,我发现他们放了用户字符串

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20
Run Code Online (Sandbox Code Playgroud)

我发现Mozilla是一个与谷歌和微软没有任何关系的组织.也许它是两者的竞争对手.为什么MSFT和Google都将Mozilla放在他们的用户代理中?是否有任何理由将Mozilla放入连接字符串?

为什么chrome和IE都会在发送请求时将Mozilla放入用户字符串中?我不知道为什么,但有什么具体原因吗?

browser user-agent

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

标签或窗口之间的通信

我正在寻找一种方法,如何在浏览器中的多个选项卡或窗口之间进行通信(在同一个域上,而不是CORS),而不留痕迹.有几个解决方案:

  1. 使用窗口对象
  2. 的postMessage
  3. 饼干
  4. localStorage的

第一个可能是最糟糕的解决方案 - 你需要从当前窗口打开一个窗口,然后只要你打开窗户就可以进行通信.如果您在任何窗口中重新加载页面,则很可能会丢失通信.

第二种方法,使用postMessage,可能启用跨源通信,但遇到与第一种方法相同的问题.您需要维护一个窗口对象.

第三种方式,使用cookie,在浏览器中存储一些数据,这可以有效地看起来像向同一域上的所有窗口发送消息,但问题是你永远不知道所有标签是否已经读过"消息"打扫干净.您必须实现某种超时以定期读取cookie.此外,您受限于最大cookie长度,即4KB.

使用localStorage的第四种解决方案似乎克服了cookie的限制,甚至可以使用事件进行监听.接受的答案中描述了如何使用它.

编辑2018:接受的答案仍然有效,但现代浏览器有一个更新的解决方案,使用BroadcastChannel.有关如何使用BroadcastChannel在选项卡之间轻松传输消息的简单示例,请参阅其他答案.

javascript browser html5 ipc broadcast-channel

136
推荐指数
7
解决办法
7万
查看次数

如何让浏览器提示保存密码?

嘿,我正在开发一个具有登录对话框的Web应用程序,其工作方式如下:

  1. 用户点击"登录"
  2. 登录表单HTML使用AJAX加载并显示在页面上的DIV中
  3. 用户输入用户/传递字段并单击提交.它不是<form>- 用户/通过AJAX提交
  4. 如果用户/通行证没问题,则页面会在用户登录时重新加载.
  5. 如果用户/传递不好,页面不会重新加载,但DIV中会出现错误消息,用户可以再次尝试.

这是问题所在:浏览器从不提供通常的"保存此密码?是/从不/不立即"提示它为其他网站提供的.

我尝试使用"autocomplete ='on'" 包装<div>in <form>标签,但这没有任何区别.

是否可以让浏览器提供存储密码而无需重新修改我的登录流程?

谢谢Eric

ps添加到我的问题,我肯定使用存储密码的浏览器,我从来没有点击"永远不会这个网站"...这是一个技术问题,浏览器没有检测到它是一个登录表单,而不是操作员错误:-)

browser ajax firefox login

135
推荐指数
9
解决办法
12万
查看次数

为favicon.ico更正MIME类型?

根据互联网号码分配机构(IANA),所有.ico文件都属于MIME类型image/vnd.microsoft.icon.(来源)

例如 <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

然而,精明的互联网大师,保罗爱尔兰,声称这是错误的,它实际上是image/x-icon.(来源)

例如 <link rel="icon" type="image/x-icon" href="favicon.ico" />

我知道你可以逃避不包括.ico文件的"类型",但如果你打算包括一个,它应该是什么?将其作为官方IANA类型提供服务确实存在任何问题吗?

html browser favicon mime-types

134
推荐指数
3
解决办法
9万
查看次数

我们如何下载blob网址视频

我想下载一个视频,其网址不是简单的mp4文件,但其网址是blob类型,例如.

<video id="playerVideo" width="450px" autoplay="autoplay" height="338px" 
       style="height:100%;width:100%;" class="mejs-rai-e"
       src="blob:http://www.example.com/d70a74e1-0324-4b9f-bad4-84e3036ad354">
</video>
Run Code Online (Sandbox Code Playgroud)

是否有任何Chrome扩展程序或软件可用于下载播放视频.

browser video blob

132
推荐指数
8
解决办法
31万
查看次数

如何在浏览器标签中区分会话?

在使用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>
Run Code Online (Sandbox Code Playgroud)

将此代码复制到jsp页面(testpage.jsp)中,将此文件部署在服务器上的Web应用程序的现有上下文中(我使用Apache Tomcat),然后使用正确的URL(localhost/context1/testpage.jsp)打开浏览器(FF,IE7或Opera ),键入您在输入中的姓名并提交表格.然后在同一浏览器中打开一个新选项卡,然后您可以在新选项卡上看到您的名称(从会话中获取).小心浏览器缓存,有时似乎不会发生,但它在缓存中,刷新第二个选项卡.

谢谢.

browser jsp servlets web-applications sessionid

130
推荐指数
8
解决办法
24万
查看次数

如何判断浏览器是否处于"怪癖"模式?

假设您有一个页面具有相对严格的文档类型和HTML标记非常接近合规,但可能会以一些愚蠢的方式错过,可能是因为用户内容无法控制...说您正在处理内容管理系统或内容管理系统的主题,您可以在其中控制一些基本结构并需要一些javascript,但您不对其他所有内容负责.

当浏览器决定进入"怪癖"模式而不是使用更符合标准的引擎时,您如何判断(或:将决定什么)?

我正在为每个主流浏览器寻找答案,因为IE,Chrome,Safari和Firefox当然都会以不同的方式处理.一个单一的错误是否足以迫使它或你有一些余地?

html browser quirks-mode

127
推荐指数
3
解决办法
5万
查看次数