在查看Mozilla(Firefox)附加SDK的一些Javascript代码时,我看到了一些我之前从未见过的变量声明:
var { foo, bar } = someFunction("whatever"); // just an example
Run Code Online (Sandbox Code Playgroud)
查看变量名称周围的花括号?事实证明,这是一种将对象的属性值一次性分配给多个变量的方法.它看起来类似于解构赋值或PHP list,除了使用对象属性而不是数组.
我实际上通过一些小小的问题找到了这个,因为似乎没有关于它的文档.看看这段代码:
function gimmeAnObject() {
return {
foo: "hey",
bar: "sup"
};
}
console.log(gimmeAnObject()); // Object { foo="hey", bar="sup" }
var { foo, bar } = gimmeAnObject();
console.log(foo); // hey
console.log(bar); // sup
Run Code Online (Sandbox Code Playgroud)
我还发现这只适用于Firefox.Chrome会抛出错误:" Uncaught SyntaxError:Unexpected token { ".这就解释了为什么在我开始查看Firefox附加代码之前我没有看到它.
有没有其他人见过这种变量声明?为什么我找不到任何文件?因为它只适用于Firefox,我认为它可能是一个Mozilla的东西,但我甚至在MDN上找不到任何关于它的东西.然后,也许我只是不知道要搜索什么.
从今天开始,每当我打开日食时,我都会弹出一个标题为"Problem Occured"的消息框,说:
没有更多的把手[未知Mozilla的路径(MOZILLA_FIVE_HOME未设置)]可能ARGS:{0},{1},{2},{3}不再有句柄[未知Mozilla的路径(MOZILLA_FIVE_HOME未设置)]
然后我点击"确定"进入工作台,我又说了一个错误
发生了SWT错误.建议您退出工作台.可能会发生后续错误并在没有警告的情况下退出工作台.有关更多详细信息,请参见.log文件.
你想退出工作台吗?(是/否)
然后我点击"是"并查看.metadata中的.log文件.我看到了这个很长的堆栈跟踪:
!ENTRY org.eclipse.datatools.sqltools.plan 4 0 2012-08-25 14:28:52.355
!MESSAGE No resource bundle has been set for the LoggerNo more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]".
!ENTRY org.eclipse.datatools.sqltools.plan 4 0 2012-08-25 14:28:52.359
!MESSAGE No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] possible args: {0}, {1}, {2}, {3}
!STACK 0
org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
at org.eclipse.swt.SWT.error(SWT.java:4387)
at org.eclipse.swt.browser.Mozilla.initMozilla(Mozilla.java:1939)
at org.eclipse.swt.browser.Mozilla.create(Mozilla.java:699)
at org.eclipse.swt.browser.Browser.<init>(Browser.java:99)
at org.eclipse.datatools.sqltools.plan.internal.ui.view.GraphicsPlanControl.createDetailForm(GraphicsPlanControl.java:93)
at org.eclipse.datatools.sqltools.plan.internal.ui.view.GraphicsPlanControl.init(GraphicsPlanControl.java:73)
at org.eclipse.datatools.sqltools.plan.internal.ui.view.GraphicsPlanControl.<init>(GraphicsPlanControl.java:54)
at …Run Code Online (Sandbox Code Playgroud) Mozilla声称"for for循环将正确地循环NodeList对象".(来源:https://developer.mozilla.org/en-US/docs/Web/API/NodeList)但是,这在Chrome 43中不起作用.这是不正确的文档还是浏览器错误?
复选的示例代码在页面上使用复选框:
var list = document.querySelectorAll( 'input[type=checkbox]' );
for (var item of list) {
item.checked = true;
}
Run Code Online (Sandbox Code Playgroud) 我想保持我的根证书最新用于cURL和PHP的内部curl命令,但是目前没有参数可以下载当前文件所需的正确安全连接并使其保持最新状态.
和例如使用的curlPHP中针对其安全连接要求一个文件名为cacert.pem(用于验证远程连接PEM编码的证书链)如下:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
if (!($data = curl_exec($ch))) {
echo "No data received";
} else {
echo strlen($data) + " total byte(s)";
}
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
虽然大多数人只是设置CURLOPT_SSL_VERIFYPEER为假,从而忽略了问题,这是不好的.您可以在此处看到证书颁发机构显示如果您没有此文件的最新信息,连接到安全服务器的唯一方法是禁用证书检查,并进一步警告禁用对等验证的影响.
我要求的是一种合法的方式来维护本地副本,cacert.pem这样当我curl在PHP中使用它与其他服务器通信时,我可以继续安全地这样做.
这不是对外部资源或异地链接等的请求,但是由于问题的性质,可能是解决此问题的唯一方法,因为在证书链被撤销时需要不断更新.到目前为止,无法获得此文件作为curl本身或php的分发的一部分,或php的curl库并继续维护它.虽然令人沮丧的是,这不是一个简单的更新命令就好的东西curl --update-root-ca,它不会以任何形式存在.
MDN(Mozilla开发者网络)网站如何更改上下文菜单?
例如,这个页面.
我认为他们创建了整个上下文菜单,以便在触发contextmenu事件时调用它,但它似乎有点疯狂.
此外,它不适用于Chrome,所以我认为这是一个仅限Firefox的功能.
有人知道他们是怎么做到的吗?

我在我的localhost域上设置了一个cookie,并按照SO中最高排名的问题指出了所有内容:set-cookie:带有显式域名的localhost上的cookies以及为什么asp.net不会在localhost中创建cookie?
tkn=2DH1hWlhOrl1Ty5qsYYyHKXZlfTOac;
Domain=.localyyyyyyyy.com;
Expires=mar., 21 avr. 2015 20:36:48 WEST;
Path=/;
HttpOnly
Run Code Online (Sandbox Code Playgroud)
我绑定了/ etc/hosts 127.0.0.1 to dev.localyyyyyyyy.com
我可以看到cookie的响应标题,但我看不到它存储在Chrome或Firefox中.

并在cookie选项卡上,没有: 
你们有没有想过这个?
谢谢,
我正在努力将Coral Talk项目评论系统应用到我的应用程序中.我试图将它实现到一个主要是Meteor和React的项目中.它在GitHub上
我认为主要问题是这是我第一次需要在React中使用脚本标记.
我试图通过componentDidMount中的dom,使用dangerouslySetHtml,尝试使用此建议,以及几个不同的包来加载脚本,但是在检查时只显示div和src,而不是页面本身的脚本内容.它的onload功能似乎没有被解雇.
通过设置另一个更简单的Node/Express应用程序,我已经确认了服务器并正确嵌入了代码功能.
这是我试图嵌入到我的React站点的代码:
<div id="coral_talk_stream"></div>
<script src="http://127.0.0.1:3000/static/embed.js" async onload="
Coral.Talk.render(document.getElementById('coral_talk_stream'), {
talk: 'http://127.0.0.1:3000/'
});
"></script>
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
我正在尝试将内容加载到 IFrame 中,因此我实现了 Content-Security-Policy 标头:Content-Security-Policy:frame-ancestors http://*.example.com/abc.html。
当我将标头指定为 Content-Security-Policy:frame-ancestors http://*.example.com/ 时,我可以在 iframe 上加载内容。
但是当我将标题更改为:Content-Security-Policy:frame-ancestors self http://*.example.com/abc.html。然后 iframe 上的内容第一次加载,但当我刷新网页时出现以下错误
拒绝在框架中显示“https://...”,因为祖先违反了以下内容安全策略指令:frame-ancestors self http://*.example.com/abc.html。
谁能告诉我为什么刷新页面时会出错。框架祖先还考虑完整的 url (http:// .example.com/abc.html) 还是只考虑主机名,如 http:// .example.com?
我有一个在线阅读书籍的网页.我想保存文档中的位置,这样当用户恢复阅读时,他就会从以前的位置开始.
我可以使用window.pageYOffset之类的东西来获取滚动,但这取决于浏览器窗口的大小.换句话说,如果您使窗口更窄,则相同的文本将在不同的滚动条上(有关示例,请参见图像).
所以我需要提出一种窗口大小的独立测量滚动方式.有任何想法吗?
注意:我只需要在基于Mozilla的浏览器上工作.

提前致谢
使用给定的函数发布消息,但收到错误"DataCloneError:无法克隆该对象".at line"target ['postMessage'](message,target_url.replace(/([^:] +:// [^ /] +).*/,'$ 1'));" 在FireFox-34中,相同的代码在Chrome和旧版FireFox上运行良好.
var storage = function() {
return {
postMessage : function(message, target_url, target) {
if (!target_url) {
return;
}
var target = target || parent; // default to parent
if (target['postMessage']) {
// the browser supports window.postMessage, so call it with a targetOrigin
// set appropriately, based on the target_url parameter.
target['postMessage'](message, target_url.replace( /([^:]+:\/\/[^\/]+).*/, '$1'));
}
}
}
}();
Run Code Online (Sandbox Code Playgroud)