有没有办法在javascript中将变量名转换为字符串?更具体:
var a = 1, b = 2, c = 'hello';
var array = [a, b, c];
Run Code Online (Sandbox Code Playgroud)
现在,在我浏览数组的某个时刻,我需要将变量名称(而不是它们的值)作为字符串 - 这将是'a'或'b'或'c'.我真的需要它成为一个字符串,所以它是可写的.我怎样才能做到这一点?
某些HTML表单元素附加了额外的UI,如上/下箭头number.然而,当打印页面时,不再需要那些按钮,因为用户不能以打印形式与它们交互.
文本框很容易处理:
@media print {
input {
border: none;
border-bottom: 2px solid #000000;
}
}
Run Code Online (Sandbox Code Playgroud)
使它们打印得非常好,作为带有文本的线条.就像一个表格一样可以手工填写.然而,对于像number你那些令人讨厌的向上/向下箭头那样的输入做同样的事情:
">
然后有更少有用的打印输出,例如range,在页面上没有任何意义:

有没有办法解决这个问题?任何方式将元素的该部分设置为不可见,但仍然可以看到值/文本?
我意识到可以type=""用JS 替换属性,或者让另一个元素保持在打印时显示的值,但是如果有一个只能用CSS完成的解决方案,那就更好了.
这div是典型的块级元素,span而是内联对应元素.它们是该显示类型的最简单形式,没有其他属性.在很多情况下,我会给他们任何一种风格:
display: inline-block;
Run Code Online (Sandbox Code Playgroud)
这使得他们表现得非常方便.因为div它意味着盒子可以轻松地彼此相邻,同时保持其定义的宽度和高度.因为span我可以用它来制作彩色矩形.该inline-block显示器是伟大的事情太多了,但我从来没有见过,作为一个开始元素inline-block没有别的事情.
图像(img)是,但它们显然不适合与a相同的东西div,它们具有那种风格,但它们实现了不同的目的.
那么有一个我不知道的元素是典型的inline-block,还是遗漏了?
如果没有,为什么?使用inline-block很多,所以似乎应该有一些元素采用这种基本形式.
我有一个用户脚本(用于chrome和FF),它为页面添加了重要功能,但最近因为开发人员向页面添加了一些AJAX而被破坏.我想修改脚本来监听页面xmlhttp请求,这样我就可以根据responseText页面接收的JSON格式动态更新我添加的内容.
搜索已经发现了许多应该工作的功能,并且在控制台中运行时可以正常工作.但是,它们不会从用户脚本的上下文中执行任何操作.
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
this.addEventListener("readystatechange", function() {
console.log(this.readyState);
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
Run Code Online (Sandbox Code Playgroud)
来自:如何从Greasemonkey脚本拦截XMLHttpRequests?
这工作完全在控制台中,我可以改变this.readyState,以this.responseText和它的伟大工程(尽管在剧本我需要它来打开JSON数据转换成一个对象,然后让我userscript内操纵它.不只是写到控制台) .但是,如果我将其粘贴到用户脚本中没有任何反应.页面上的xmlhttp请求似乎没有被usercript中的事件处理程序检测到.
执行请求的页面使用jquery $ .get()函数,如果它可能与它有任何关系.虽然我不这么认为.
我无法想象没有办法,似乎在AJAX页面上运行的任何用户脚本都需要这种能力.
我有一个页面,其中有一个<div>元素轮,单击一个按钮时整个轮子旋转.
我通过使用CSS转换实现了这种效果,这些转换本质上是绝对的.然而,车轮非常大,在我的高清显示器上看起来不错,但是较小的屏幕会使边缘切断.我不能像普通布局那样使用%宽度,我需要的是缩放整个页面,就像大多数浏览器缩放功能一样.
对于我自己,我知道ctr + mouseWheel会缩小页面,所以我可以看到整个页面,但我不能指望其他人这样做.
我知道我可以-browser-transform: scale(amt);在包装div上使用以获得我想要的效果,但是我无法找到一种动态的方法.如果我将比例设置为.5,它将是.5,无论屏幕如何.我希望在任何屏幕上,滚轮的边缘距离屏幕边缘几个像素.我知道可以使用媒体查询来帮助解决问题,但是他们会给我留下不太理想的结果,或者需要太多不同的查询.必须有一种方法可以通过-browser-transform: scale(amt);编程方式进行修改,或者采用其他方式进行有限控制.
有什么想法吗?
我正在尝试从Arduino Uno的模拟输入中编码WAV文件。该analogRead(pinNumber)函数返回0到1023之间的值。然后需要将此10位值编码到WAV文件中。有一个功能map(val, inMin, inMax, outMin, outMax)可以将其调整为完整的16位值(或8位值)。但是理想情况下,如果我可以将WAV文件的样本大小简单地设置为10位,那将是完美的。我知道如何将其写入标头,但我不知道它是否会真正起作用,或者如果它不是8位的倍数,则如何实际写入数据。
如果可能的话,我假设它需要一些花哨的按位运算,但是我不知道如何使它起作用。