我想401 Unauthorized在某个地方发送AND重定向客户端.然而:
如果我这样做:
header('HTTP/1.1 401 Unauthorized');
header('Location: /');
Run Code Online (Sandbox Code Playgroud)
服务器会发送一个302 Found带有Location,所以不是401 Unauthorized.
如果我这样做:
header('Location: /');
header('HTTP/1.1 401 Unauthorized');
Run Code Online (Sandbox Code Playgroud)
浏览器接收a 401 Unauthorized和a Location,但不重定向.
(IE 9和Chrome 16的行为相同,所以我猜它是正确的)
也许我在滥用HTTP?我希望我的应用程序界面对所有客户端完全相同:文本浏览器,现代浏览器,API调用等.401 +响应文本将告诉API用户什么是什么.重定向对浏览器很有用.
有(好的)方式吗?
我非常好奇(这就是全部)看你如何选择元素的所有子元素,除了前两个和后两个元素.
我有一种方法,但这是令人讨厌和不可读的.必须有一个更清晰的方法,不需要8个伪选择器.
:not(:nth-child(1)):not(:nth-child(2)):not(:nth-last-child(1)):not(:nth-last-child(2)) {
background: purple;
}
Run Code Online (Sandbox Code Playgroud)
是的,那太可怕了.它从字面上选择所有元素:不是第一个或第二个第一个或最后一个.必须有一个方法2用作半变量,而不是在伪选择器上堆积.
我想到了另一个(仍然凌乱):
:not(:nth-child(-1n+2)):not(:nth-last-child(-1n+2)) {
background: purple;
}
Run Code Online (Sandbox Code Playgroud) (我找不到它,但我又不知道如何搜索它.)
我想使用<input list=xxx>并<datalist id=xxx>获得自动完成功能,但我希望浏览器通过"包含"方法匹配所有选项,而不是"开始于",这似乎是标准的.有办法吗?
如果不是简单,有没有办法强制显示我想要显示的建议,而不是浏览器匹配的建议?假设我正在键入"foo",我想显示选项"bar"和"baz".我可以强迫用户使用吗?如果我只是用那些(用JS)填充datalist,浏览器仍然会执行'start with'检查,并将其过滤掉.
我希望最终控制数据主义选项如何显示.不要超过它的UI,灵活性,可访问性等,所以我不想完全重新制作它.甚至不建议使用jQuery插件.
如果我可以最终控制表单元素验证,为什么不自动完成,对吧?
编辑:我现在看到Firefox确实使用'包含'方法......那甚至不是标准?有什么方法可以强迫这个?我可以改变Firefox的方式吗?
编辑:我这是为了说明我喜欢的内容:http://jsfiddle.net/rudiedirkx/r3jbfpxw/
我在https中使用Jira,我想用一些额外的JS做一些调整.我的JS托管在一台不安全的服务器上(没有https可用).
当我通过将不安全的JS文件插入DOM(使用浏览器扩展名)动态加载它时,Chrome会告诉我:
[阻止]
https://jiraserver/browse从不安全的内容发送的页面http://myserver/jira.js.
我可以看到这是多么安全和所有,但我不在乎.我想加载那个不安全的JS文件.我怎么能告诉Chrome信任我,只是按照我说的去做?
我的插入方法(在扩展码中):
document.body.appendChild((function(s){s.src='http://myserver/jira.js';return s;})(document.createElement('script')));
Run Code Online (Sandbox Code Playgroud) 使用Javascript中的新File API,您可以在Javascript中读取文件以创建dataURL以显示客户端的客户端图片.我想知道你是否可以在FileReader的onload回调中访问File对象.我将用一个例子来说明这一点:
var div = document.createElement('div');
div.ondrop = function(e) {
e.preventDefault();
e.stopPropagation();
var files = e.dataTransfer.files;
for ( var i=0; i<files.length; i++ ) {
var file = files[i]; // this is the file I want!!
var filereader = new FileReader();
filereader.onload = function(e) {
this; // the FileReader object
e.target; // the same FileReader object
this.result; // the dataURL, something like data:image/jpeg;base64,.....
var img = document.createElement('img');
img.src = this.result;
img.title = file.fileName; // This won't be working
document.appendChild(img);
}
} … 这基本上和简化了我现在拥有的:
<style>
form.noshow { height: 0; overflow: hidden; }
</style>
<form class=noshow target="SomeIframeThatExists">
<input type=file id=uf>
</form>
<a id=uflink href="/user/photo">Upload photo</a>
<script>
$('uf').addEvent('change', function(e) {
// alert('oele'); // this would work fine
this.form.submit(); // auch in IE > "Access denied" exception
});
$('uflink').addEvent('click', function(e) {
$('uf').click(); // opens file dialog in all browsers inc IE
return false;
});
</script>
Run Code Online (Sandbox Code Playgroud)
它在Chrome 11和FF 4中的作用(完美):
非常高科技和甜蜜.
在IE中,所有这些都有效,除了[6].表格未提交.Javascript错误:"访问被拒绝".无论表单如何不可见,只要打开对话框input.click(),表单就无法提交更改.(onchange函数执行正常.只有在form.submit()调用时才会出现错误.)
现在所有这一切我都能接受.IE糟透了.我和它一起生活.
到目前为止,我的解决方案是检查navigator"MSIE",然后单击链接而不是打开对话框,显示表单(带文件输入).然后用户必须单击实际的,丑陋的文件输入,然后一切正常.但丑陋.
问题有两个: …
AG Chrome扩展程序可以进行" 浏览器操作 ".通常,当您单击它时,ext开发人员会显示选项,这意味着每个操作都需要2次点击,甚至是默认的99%的时间操作.Chrome本身添加了一个上下文菜单,其中包含以下几个选项:禁用ext,卸载ext,转到ext主页等.
我可以作为ext开发人员向该上下文菜单添加项目,这样我可以在正常/左/主鼠标单击下保持我的单击操作吗?
我知道chrome.contextMenus,但这仅适用于页面中的上下文菜单(请参阅属性' contexts ').
我在Chrome扩展程序开发指南中找不到它,但你知道的比我更多.
(PHP有||和OR.只有JS ||.)
JS.根据MDN的 ||优先级高于=.所以这不起作用:
a || a = 1;
Run Code Online (Sandbox Code Playgroud)
因为它被评估为:
(a || a) = 1;
Run Code Online (Sandbox Code Playgroud)
这会导致"分配中的左侧无效".我明白那个.那讲得通.
PHP.根据PHP.net,它对PHP的作用相同:||之前=.但是,我一直都在使用它:
$a || $a = 1;
Run Code Online (Sandbox Code Playgroud)
为什么它在PHP中有效?最重要的是:PHP的OR优先级低于=,所以这些不应该这样做:
$a || $a = 1;
$a OR $a = 1;
Run Code Online (Sandbox Code Playgroud)
但他们做... https://3v4l.org/UWXMd
我认为JS' ||根据MDN的表工作,而PHP的OR工作方式就像PHP的表一样,但PHP ||不应该像它那样工作.
这是另一个奇怪的PHP怪癖吗?
该手册还提到了这一点:
尽管
=优先级低于大多数其他运算符,但PHP仍然允许使用类似于以下内容的表达式:if (!$a = foo())在这种情况下,返回值将foo()被放入$a.
优先级表决定PHP应该评估(!$a) = …
我有一张62张91*91像素的精灵,这使得整件事情为91*5642像素.它们以动态网格的形式显示,根据用户/指针的移动而增长和缩小.有时一个元素(标准91*91像素)放大使其为120*120像素.显然,我希望背景增长,以便在整个120*120元素中显示整个91*91像素图像.
输入background-size: 100% auto以使宽度始终完美.现在的问题是background-position期望它的值也要更新!所有62个元素都有内联style=background-position etc.我无法从内联更新背景位置.我希望背景首先定位然后调整大小(缩放),不调整大小然后定位(缩放到错误的位置).
我不确定我是否有任何意义.有点澄清:
width: 91px; height: 91px; background-size: 100% auto;.background-position: 0 -91px.width: 120px; height: 120px;,然后它会显示第二个图像的大部分内容以及第一个图像的某些部分,因为在调整大小后会发生定位=(0 -120px,则它会正确对齐.(但显然在没有缩放/悬停时它是错误的.)一个非常简单的解决方案是使用实际zoom: 1.3或者transform: scale(1.3),但是过渡非常慢.
我肯定错过了什么.CSS必须比这更聪明.一个背景大小的精灵......这不是不可能的!?
精灵的外观取决于我,所以我可以让它有一个120*120的网格而不是91*91,如果这样会更简单......
编辑:用例子小提琴:http://jsfiddle.net/rudiedirkx/g4RQx/
智能答案1: background-position: 0 calc(100% / 61 * 2)(61因为62张图片,2张因为第3张图片)
javascript ×3
css ×2
html5 ×2
amazon ×1
api ×1
autocomplete ×1
contextmenu ×1
file ×1
file-upload ×1
filereader ×1
http-headers ×1
https ×1
php ×1
sprite ×1