小编Rud*_*die的帖子

是否可以发送401 Unauthorized AND重定向(带位置)?

我想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用户什么是什么.重定向对浏览器很有用.

有(好的)方式吗?

http-redirect http-headers http-status-code-401

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

CSS选择除前两个和后两个之外的所有子元素

我非常好奇(这就是全部)看你如何选择元素的所有子元素,除了前两个和后两个元素.

我有一种方法,但这是令人讨厌和不可读的.必须有一个更清晰的方法,不需要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)

css css-selectors

33
推荐指数
2
解决办法
4万
查看次数

使用带有'包含'方法的HTML5(datalist)自动完成功能,而不只是'开头'

(我找不到它,但我又不知道如何搜索它.)

我想使用<input list=xxx><datalist id=xxx>获得自动完成功能,但我希望浏览器通过"包含"方法匹配所有选项,而不是"开始于",这似乎是标准的.有办法吗?

如果不是简单,有没有办法强制显示我想要显示的建议,而不是浏览器匹配的建议?假设我正在键入"foo",我想显示选项"bar"和"baz".我可以强迫用户使用吗?如果我只是用那些(用JS)填充datalist,浏览器仍然会执行'start with'检查,并将其过滤掉.

我希望最终控制数据主义选项如何显示.不要超过它的UI,灵活性,可访问性等,所以我不想完全重新制作它.甚至不建议使用jQuery插件.

如果我可以最终控制表单元素验证,为什么不自动完成,对吧?

编辑:我现在看到Firefox确实使用'包含'方法......那甚至不是标准?有什么方法可以强迫这个?我可以改变Firefox的方式吗?

编辑:我这是为了说明我喜欢的内容:http://jsfiddle.net/rudiedirkx/r3jbfpxw/

html5 autocomplete html-datalist

28
推荐指数
2
解决办法
1万
查看次数

如何从Amazon Book API获取图书图形和说明?

此URL将一个ISBN号发送给亚马逊,并获取一小部分XML,包括作者,标题和发布者.

但是,我还想获得标题的小,中,大图形和书籍描述.

问题:我无法在Google或在Amazon Associates登录我的"AWS账户"时找到可用的REST URL示例/文档.

我发现2003 - 2005年有很多例子,但它们都已经过时并且出错了,似乎亚马逊的云网络服务已经为他们的书籍模糊了他们简单的REST API文档.

有人能指点我如何通过REST/XML获取亚马逊书籍的详细信息吗?

这是我到目前为止所尝试的内容.

api amazon

21
推荐指数
1
解决办法
2万
查看次数

如何强制加载Chrome中动态,不安全的内容?

我在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 https google-chrome

21
推荐指数
1
解决办法
5万
查看次数

HTML5文件API:在FileReader回调中获取File对象

使用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);
    }
  } …

javascript html5 file filereader

16
推荐指数
1
解决办法
2万
查看次数

在IE中打开文件输入对话框并上传onchange?

这基本上和简化了我现在拥有的:

<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中的作用(完美):

  1. 表格是隐藏的.
  2. 单击该链接
  3. 选择文件对话框打开
  4. 您选择一个文件
  5. 对话框关闭
  6. 表格已提交
  7. 执行iframe中的脚本并替换照片

非常高科技和甜蜜.

在IE中,所有这些都有效,除了[6].表格未提交.Javascript错误:"访问被拒绝".无论表单如何不可见,只要打开对话框input.click(),表单就无法提交更改.(onchange函数执行正常.只有在form.submit()调用时才会出现错误.)

现在所有这一切我都能接受.IE糟透了.我和它一起生活.

到目前为止,我的解决方案是检查navigator"MSIE",然后单击链接而不是打开对话框,显示表单(带文件输入).然后用户必须单击实际的,丑陋的文件输入,然后一切正常.但丑陋.

问题有两个: …

javascript file-upload cross-browser openfiledialog

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

将上下文菜单项添加到Chrome扩展程序的浏览器操作按钮

AG Chrome扩展程序可以进行" 浏览器操作 ".通常,当您单击它时,ext开发人员会显示选项,这意味着每个操作都需要2次点击,甚至是默认的99%的时间操作.Chrome本身添加了一个上下文菜单,其中包含以下几个选项:禁用ext,卸载ext,转到ext主页等.

我可以作为ext开发人员向该上下文菜单添加项目,这样我可以在正常/左/主鼠标单击下保持我的单击操作吗?

我知道chrome.contextMenus,但这仅适用于页面中的上下文菜单(请参阅属性' contexts ').

我在Chrome扩展程序开发指南中找不到它,但你知道的比我更多.

google-chrome contextmenu google-chrome-extension

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

JS vs PHP:与logical-or一起使用时的赋值运算符优先级

(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) = …

php operator-precedence

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

背景位置的背景大小不会缩放位置?

我有一张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张图片)

css sprite background-position

15
推荐指数
2
解决办法
1万
查看次数